K8s集群环境搭建—K8s集群初始化(4)
一、各Master节点的kubeadm-config.yaml配置文件如下vi kubeadm-config.yamlapiVersion: kubeadm.k8s.io/v1beta2bootstrapTokens:- groups:- system:bootstrappers:kubeadm:default-node-tokentoken: 7t2weq.bjbawausm0jaxuryttl
学习来源: 51cto: https://edu.51cto.com/sd/518e5
腾讯课堂: https://ke.qq.com/course/2738602
K8s集群环境搭建—基础环境配置(1):https://blog.csdn.net/qq_26900081/article/details/109291999
K8s集群环境搭建—K8s安装(2):https://blog.csdn.net/qq_26900081/article/details/109311033
K8s集群环境搭建—安装Keepalived和HAProxy(3):https://blog.csdn.net/qq_26900081/article/details/109331192
K8s集群环境搭建—K8s集群初始化(4):https://blog.csdn.net/qq_26900081/article/details/109331192
K8s集群环境搭建—安装Metrics和Dashboard(5):https://blog.csdn.net/qq_26900081/article/details/109337475
一、各Master节点的kubeadm-config.yaml配置文件如下
vi kubeadm-config.yaml
apiVersion: kubeadm.k8s.io/v1beta2
bootstrapTokens:
- groups:
- system:bootstrappers:kubeadm:default-node-token
token: 7t2weq.bjbawausm0jaxury
ttl: 24h0m0s
usages:
- signing
- authentication
kind: InitConfiguration
localAPIEndpoint:
advertiseAddress: 192.168.70.131
bindPort: 6443
nodeRegistration:
criSocket: /var/run/dockershim.sock
name: localhost.master1.131
taints:
- effect: NoSchedule
key: node-role.kubernetes.io/master
---
apiServer:
certSANs:
- 192.168.70.200
timeoutForControlPlane: 4m0s
apiVersion: kubeadm.k8s.io/v1beta2
certificatesDir: /etc/kubernetes/pki
clusterName: kubernetes
controlPlaneEndpoint: 192.168.70.200:16443
controllerManager: {}
dns:
type: CoreDNS
etcd:
local:
dataDir: /var/lib/etcd
imageRepository: registry.cn-hangzhou.aliyuncs.com/google_containers
kind: ClusterConfiguration
kubernetesVersion: v1.19.3
networking:
dnsDomain: cluster.local
podSubnet: 172.168.0.0/16
serviceSubnet: 10.96.0.0/12
scheduler: {}
以上是1.8.5版本的配置,如果将来出了新版本配置文件过时,则使用以下命令转换一下:
kubeadm config migrate --old-config kubeadm-config.yaml --new-config new.yaml
二、利用配置文件下载镜像
kubeadm config images pull --config ./kubeadm-config.yaml
如果报错找不到镜像,可以修改配置文件里的镜像仓库地址为:imageRepository: daocloud.io/daocloud
三、在Master1节点上初始化集群
kubeadm init --config kubeadm-config.yaml --upload-certs
如果报错版本问题,修改kubeadm-config.yaml的kubernetesVersion配置:kubernetesVersion: v1.19.3
我之前写的配置是v1.18.5,结果报错了, 改成 v1.19.3 后重新执行第二节拉取镜像就可以了
初始化成功:
查看组件是否启动起来:kubectl get pod -n kube-system
上面两条状态是Pending是因为没有安装网络插件,等装上就好了:
四、Master1安装Calico网络组件
1、下载配置文件:curl https://docs.projectcalico.org/manifests/calico.yaml -O
2、查看一下Calico版本是多少:cat calico.yaml | grep image
查看与K8s的版本支持情况:https://docs.projectcalico.org/getting-started/kubernetes/requirements
3、修改calico.yaml:vi calico.yaml
name取消注释就可以,value改成第一节的配置文件(kubeadm-config.yaml)里面的podSubnet。
在vi里面搜一下“/192.168”就可以找到这个地方。
4、创建Calico:kubectl apply -f calico.yaml
5、再次查看K8s组件,就可以看到全部起来了:kubectl get pod -n kube-system
五、将其它Master节点和Node节点加入集群
加入集群的命令在第三节中,自己根据初始化集群输出的命令来加入集群,不要复制下面两句命令去执行。
1、其它Master节点加入集群,在Master2和Master3上执行
kubeadm join 192.168.70.200:16443 --token 7t2weq.bjbawausm0jaxury \
--discovery-token-ca-cert-hash sha256:8083895bf8735624ab6bd0fb75d8d35bfb2f2b22aedf89078b8d78153cec8c41 \
--control-plane --certificate-key 23953b1a08e174141ae7993c564a00c1b111c9b5761909d445e641a4c012ead1
2、Node节点加入集群,在Node1和Node2上执行
kubeadm join 192.168.70.200:16443 --token 7t2weq.bjbawausm0jaxury \
--discovery-token-ca-cert-hash sha256:8083895bf8735624ab6bd0fb75d8d35bfb2f2b22aedf89078b8d78153cec8c41
3、上面两点的Token是有过期时间(一般一天)的,如果过期了则要重新生成token
生成“Node节点的命令”和“Master节点的前半部分”的命令: kubeadm token create --print-join-command
Master需要生成--certificate-key :kubeadm init phase upload-certs --upload-certs
4、查看集群节点状态,加入集群后需要等待几分钟状态才会变成ready:kubectl get node
六、将keepalived配置文件的track_script取消注释后重启。
更多推荐
所有评论(0)