每个节点上都要装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.youkuaiyun.com/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命令