CKA备考实验 | 安装一套v1.20.1版本的集群

本文详细介绍了如何基于《CKA/CKAD应试指南》搭建Kubernetesv1.20.1集群,包括设置环境、降级现有集群、复制配置文件、修改集群版本以及将工作节点加入新集群的过程。此外,文章还提到了使用kubeadm工具进行初始化和管理集群的关键步骤。
摘要由CSDN通过智能技术生成

书籍来源:《CKA/CKAD应试指南:从Docker到Kubernetes完全攻略》

一边学习一边整理老师的课程内容及实验笔记,并与大家分享,侵权即删,谢谢支持!

附上汇总贴:CKA备考实验 | 汇总_热爱编程的通信人的博客-CSDN博客


后面需要练习升级kubermetes,所以这里再安装一套节点集群,kubernetes版本使用v1.20.1,拓扑图如图3-9所示。

按照前面讲过的步骤,分别设置yum源、/etc/hosts、selinux、防火墙、内核参数、安装并启动docker,安装kubectl、kubeadm、kubelet,启动kubelet等,这里不再重复。

前面是第一套集群,安装好之后,可以获取它的配置。

步骤1:在vms10上执行。

##########实操验证##########
#实操时没有新开一套集群,而是将已经创建好的1.21.1集群降级。
[root@vms10 ~]# kubectl get cm -o yaml -n kube-system kubeadm-config > kubeadm-config.yaml
[root@vms10 ~]#

步骤2:把这个文件拷贝到第二套集群的master上,即vms15上。

##########实操验证##########
#在master和node上执行kubeadm reset,后面会重新安装。注意:kubeadm init后一定要执行 cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
[root@vms10 ~]# kubeadm reset

步骤3:在vms15的终端上查看此文件的内容,并做适当的修改。

##########实操验证##########
#修改文件,结果如下,重点是粗体部分(版本号)
[root@vms10 ~]# cat kubeadm-config.yaml 
apiServer:
  extraArgs:
    authorization-mode: Node,RBAC
  timeoutForControlPlane: 4m0s
apiVersion: kubeadm.k8s.io/v1beta2
certificatesDir: /etc/kubernetes/pki
clusterName: kubernetes
controllerManager: {}
dns:
  type: CoreDNS
etcd:
  local:
    dataDir: /var/lib/etcd
imageRepository: registry.aliyuncs.com/google_containers
kind: ClusterConfiguration
kubernetesVersion: v1.20.1
networking:
  dnsDomain: cluster.local
  podSubnet: 10.244.0.0/16
  serviceSubnet: 10.96.0.0/12
scheduler: {}
[root@vms10 ~]#

这里指定的kubernetes版本是1.20.1,主要用于练习升级kubernetes。

步骤4:利用kubeadm-config.yaml创建集群。

##########实操验证##########
#需要把kubelet版本降级后重新安装,所以节点均需执行
[root@vms11 ~]# yum -y remove kubelet kubectl kubeadm
[root@vms11 ~]# yum install -y kubelet-1.20.1-0 kubeadm-1.20.1-0 kubectl-1.20.1-0 --disableexcludes=kubernetes

#master节点重新init
[root@vms10 ~]# kubeadm init --config=kubeadm-config.yaml
[init] Using Kubernetes version: v1.20.1
[preflight] Running pre-flight checks
        [WARNING Firewalld]: firewalld is active, please ensure ports [6443 10250] are open or your cluster may not function correctly
        [WARNING IsDockerSystemdCheck]: detected "cgroupfs" as the Docker cgroup driver. The recommended driver is "systemd". Please follow the guide at https://kubernetes.io/docs/setup/cri/
        [WARNING SystemVerification]: this Docker version is not on the list of validated versions: 23.0.5. Latest validated version: 19.03
[preflight] Pulling images required for setting up a Kubernetes cluster
[preflight] This might take a minute or two, depending on the speed of your internet connection
[preflight] You can also perform this action in beforehand using 'kubeadm config images pull'
[certs] Using certificateDir folder "/etc/kubernetes/pki"
[certs] Generating "ca" certificate and key
[certs] Generating "apiserver" certificate and key
[certs] apiserver serving cert is signed for DNS names [kubernetes kubernetes.default kubernetes.default.svc kubernetes.default.svc.cluster.local vms10.rhce.cc] and IPs [10.96.0.1 192.168.1.110]
[certs] Generating "apiserver-kubelet-client" certificate and key
[certs] Generating "front-proxy-ca" certificate and key
[certs] Generating "front-proxy-client" certificate and key
[certs] Generating "etcd/ca" certificate and key
[certs] Generating "etcd/server" certificate and key
[certs] etcd/server serving cert is signed for DNS names [localhost vms10.rhce.cc] and IPs [192.168.1.110 127.0.0.1 ::1]
[certs] Generating "etcd/peer" certificate and key
[certs] etcd/peer serving cert is signed for DNS names [localhost vms10.rhce.cc] and IPs [192.168.1.110 127.0.0.1 ::1]
[certs] Generating "etcd/healthcheck-client" certificate and key
[certs] Generating "apiserver-etcd-client" certificate and key
[certs] Generating "sa" key and public key
[kubeconfig] Using kubeconfig folder "/etc/kubernetes"
[kubeconfig] Writing "admin.conf" kubeconfig file
[kubeconfig] Writing "kubelet.conf" kubeconfig file
[kubeconfig] Writing "controller-manager.conf" kubeconfig file
[kubeconfig] Writing "scheduler.conf" kubeconfig file
[kubelet-start] Writing kubelet environment file with flags to file "/var/lib/kubelet/kubeadm-flags.env"
[kubelet-start] Writing kubelet configuration to file "/var/lib/kubelet/config.yaml"
[kubelet-start] Starting the kubelet
[control-plane] Using manifest folder "/etc/kubernetes/manifests"
[control-plane] Creating static Pod manifest for "kube-apiserver"
[control-plane] Creating static Pod manifest for "kube-controller-manager"
[control-plane] Creating static Pod manifest for "kube-scheduler"
[etcd] Creating static Pod manifest for local etcd in "/etc/kubernetes/manifests"
[wait-control-plane] Waiting for the kubelet to boot up the control plane as static Pods from directory "/etc/kubernetes/manifests". This can take up to 4m0s
[apiclient] All control plane components are healthy after 13.503070 seconds
[upload-config] Storing the configuration used in ConfigMap "kubeadm-config" in the "kube-system" Namespace
[kubelet] Creating a ConfigMap "kubelet-config-1.20" in namespace kube-system with the configuration for the kubelets in the cluster
[upload-certs] Skipping phase. Please see --upload-certs
[mark-control-plane] Marking the node vms10.rhce.cc as control-plane by adding the labels "node-role.kubernetes.io/master=''" and "node-role.kubernetes.io/control-plane='' (deprecated)"
[mark-control-plane] Marking the node vms10.rhce.cc as control-plane by adding the taints [node-role.kubernetes.io/master:NoSchedule]
[bootstrap-token] Using token: kfvin7.7o7hjez5h8xyogxp
[bootstrap-token] Configuring bootstrap tokens, cluster-info ConfigMap, RBAC Roles
[bootstrap-token] configured RBAC rules to allow Node Bootstrap tokens to get nodes
[bootstrap-token] configured RBAC rules to allow Node Bootstrap tokens to post CSRs in order for nodes to get long term certificate credentials
[bootstrap-token] configured RBAC rules to allow the csrapprover controller automatically approve CSRs from a Node Bootstrap Token
[bootstrap-token] configured RBAC rules to allow certificate rotation for all node client certificates in the cluster
[bootstrap-token] Creating the "cluster-info" ConfigMap in the "kube-public" namespace
[kubelet-finalize] Updating "/etc/kubernetes/kubelet.conf" to point to a rotatable kubelet client certificate and key
[addons] Applied essential addon: CoreDNS
[addons] Applied essential addon: kube-proxy

Your Kubernetes control-plane has initialized successfully!

To start using your cluster, you need to run the following as a regular user:

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

Alternatively, if you are the root user, you can run:

  export KUBECONFIG=/etc/kubernetes/admin.conf

You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
  https://kubernetes.io/docs/concepts/cluster-administration/addons/

Then you can join any number of worker nodes by running the following on each as root:

kubeadm join 192.168.1.110:6443 --token kfvin7.7o7hjez5h8xyogxp \
    --discovery-token-ca-cert-hash sha256:6966f210ff81a76822850de38f00a34b88533a9b92e6447dffe2b9704d04e864 
[root@vms10 ~]#

步骤5:按提示执行系列命令。

##########实操验证##########
[root@vms10 ~]# mkdir -p $HOME/.kube
[root@vms10 ~]# cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
cp: overwrite ‘/root/.kube/config’? y
[root@vms10 ~]# sudo chown $(id -u):$(id -g) $HOME/.kube/config
[root@vms10 ~]#

步骤6:把worker加入集群,安装calico网络等和前面的步骤一样,请自行安装,最后的结果如下。

##########实操验证##########
[root@vms10 ~]# kubectl get nodes
NAME            STATUS   ROLES                  AGE    VERSION
vms10.rhce.cc   Ready    control-plane,master   116s   v1.20.1
vms11.rhce.cc   Ready    <none>                 15s    v1.20.1
vms12.rhce.cc   Ready    <none>                 26s    v1.20.1
[root@vms10 ~]#

此时有了两套集群,如图3-10所示。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值