K8s集群环境搭建—K8s集群初始化(4)

学习来源:     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取消注释后重启。

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值