每个节点上都要装docker、k8s

kubernetes系统由一组可执行程序组成

CentOS7为例

关闭防火墙

systemctl disable firewalld.service

systemctl disable iptables.service

systemctl stop iptables.service

systemctl stop firewalld.service

禁用SELinux

修改完之后reboot重启

用getenforce查看

同步时间systemctl restart chronyd

 

禁用交换分区

swapoff -a

# 永久禁用

vi /etc/fstab

##注释swap那一行

修改 /etc/hosts(同步其他节点 scp /etc/hosts 192.168.88.109:/etc/hosts

vi /etc/hosts

192.168.88.113 node2
192.168.88.109 node1
192.168.88.104 master7

安装docker参照https://blog.csdn.net/xopqaaa/article/details/89845166

 

安装完之后配置docker(docker.service这个同步到其他节点scp /usr/lib/systemd/system/docker.service  192.168.88.113:/usr/lib/systemd/system/docker.service

先用which iptables命令查找路径

[root@master ~]# vim /usr/lib/systemd/system/docker.service 
加上:ExecStartPost=/usr/sbin/iptables -P FORWARD ACCEPT

 

启动docker

systemctl daemon-reload
systemctl restart docker
docker info

安装kubernetes和相关工具先配置yam源编辑vi /etc/yum.repos.d/kubernetes.repo(repo包同步到其他节点上 scp /etc/yum.repos.d/kubernetes.repo 192.168.88.109:/etc/yum.repos.d/kubernetes.repo)

[kubernetes]
name=Kubernetes Repository
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=0

执行安装命令yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes

启动docker、kubelet并设置为开机自启动

镜像加速加入Registry Mirror参数(同步到其他节点scp /etc/docker/daemon.json 192.168.88.113:/etc/docker/daemon.json

echo '{"registry-mirrors":["https://registry.docker-cn.com"]}'>/etc/docker/daemon.json

重启docker

systemctl daemon-reload
systemctl restart docker

 

设置Swap(同步到其他节点scp /etc/sysconfig/kubelet 192.168.88.109:/etc/sysconfig/kubelet)

查看kubeadm配置版本要求

编辑下载master镜像脚本文件(节点上不用执行此步直接跳到安装网络插件即可)

vi kubeadm.sh

             

#!/bin/bash

set -e

KUBE_VERSION=v1.16.3
KUBE_PAUSE_VERSION=3.1
ETCD_VERSION=3.3.15-0
CORE_DNS_VERSION=1.6.2

GCR_URL=k8s.gcr.io
ALIYUN_URL=registry.cn-hangzhou.aliyuncs.com/google_containers

images=(kube-proxy:${KUBE_VERSION}
kube-scheduler:${KUBE_VERSION}
kube-controller-manager:${KUBE_VERSION}
kube-apiserver:${KUBE_VERSION}
pause:${KUBE_PAUSE_VERSION}
etcd:${ETCD_VERSION}
coredns:${CORE_DNS_VERSION})

for imageName in ${images[@]}; do
  docker pull $ALIYUN_URL/$imageName
  docker tag $ALIYUN_URL/$imageName $GCR_URL/$imageName
  docker rmi $ALIYUN_URL/$imageName
done

                                                                      
执行脚本sh ./kubeadm.sh

查看镜像docker images

开始初始化master

sudo kubeadm init \
 --apiserver-advertise-address 192.168.88.104 \
 --kubernetes-version=v1.16.3 \
 --pod-network-cidr=10.244.0.0/16

完成

执行这几步

 mkdir -p $HOME/.kube
 sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
 sudo chown $(id -u):$(id -g) $HOME/.kube/config

安装网络插件

下载flannel配置文件

wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

编辑脚本下载国内源,关于flannel的版本可以在配置文件中查到

#!/bin/bash

set -e

FLANNEL_VERSION=v0.11.0

# 在这里修改源
QUAY_URL=quay.io/coreos
QINIU_URL=quay-mirror.qiniu.com/coreos

images=(flannel:${FLANNEL_VERSION}-amd64
flannel:${FLANNEL_VERSION}-arm64
flannel:${FLANNEL_VERSION}-arm
flannel:${FLANNEL_VERSION}-ppc64le
flannel:${FLANNEL_VERSION}-s390x)

for imageName in ${images[@]} ; do
  docker pull $QINIU_URL/$imageName
  docker tag $QINIU_URL/$imageName $QUAY_URL/$imageName
  docker rmi $QINIU_URL/$imageName
done

 

执行下载镜像脚本

sh flanneld.sh

{{{忽略

执行安装flanneld访问https://github.com/coreos

拷贝命令执行

}}}

直接运行下载的配置文件进行安装

kubectl apply -f kube-flannel.yml

此时看到master已经Ready

将k8s.gcr.io/kube-proxy 、k8s.gcr.io/pause  两个镜像打包拷贝到其他节点

导出镜像

将flanneld的下载镜像的脚本复制到其他节点

在节点上执行flanneld脚本下载镜像脚本

sh flanneld.sh

查看镜像

现在其他节点所需要的镜像都有了,执行join命令加入master就可以了

token过了24小时就会过期,这里需要重新生成,没过24小时的话,直接复制初始化master时的命令就可以

重新生成token   kubeadm token create

获取ca证书sha256编码hash值

openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'

在节点上执行加入命令

在master上验证

在节点上家目录下创建.kube目录

复制配置文件到指定目录下

现在节点也可使用kubectl命令

 

 

 

 

 

 

 

 

 

 

 

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐