[CKA旅途]K8S二:实验集群安装

此文记录我考CKA的学习过程。有问题留言,有错留言会纠正,共同学习。参考视频:Oreilly的

Certified Kubernetes Administrator (CKA), 2nd Ed

安装我是从github下载,那里有很方便的脚本,但是因国内会收限制所以没有开启VPN会有问题。当然我也没有VPN。

地址:GitHub - sandervanvugt/cka

因为考试使用ubuntu18.04 和k8s的版本是1.23.但是脚本里面没有指定版本的。所以我也没有指定。我自己的环境是用在树莓派的ubuntu20.04LTS自己看着办吧。

环境要求

 

PPT较久,github上面已经更新了,执行containerd就可以。他的脚本比较好,兼容了 centos和ubuntu的系统。

教程Ubuntu里面只会安装containerd.没安装docker,我自己的master 节点是安装docker.其实不装也行。我自己对contrainerd不熟。用三台机子,分别命名为master,worker1,worker2.(可以忽略此信息。我自己当把master命名为cluster)

参考这文章也可以安装在Ubuntu 20.04上安装K8S环境 - Fzu_吴鹏辉 - 博客园

然后自己拿着github上面的setup-container.sh和setup-kubetools-ubuntu.sh对比你会理解更深

以下我都是以我的树莓派ubuntu20.04系统为例子。

执行步骤:

  1. 三台机子都配置成静态IP。可参考此文:ubuntu18.04配置静态ip和动态ip_晓之木初的博客-CSDN博客_ubuntu 配置静态ip
  2. 关闭swap分区(其实脚本已经有帮你关的只不过是临时)可能参考此文,因为我用树莓派,所以没有swap分区。永久关闭swap分区_weixin_34396902的博客-CSDN博客
  3. 关闭防火墙 sudo ufw disable,查看状太sudo ufw status,显示Status: inactive代表你成功了。
  4. 在master,worker1,worker2.执行sudo ./setup-container.sh
  5. 参考刚刚上面中的文章。自行修改脚本里面替换成国内的源就可以了。在master,worker1,worker2.执行sudo ./setup-kubetools-ubuntu.sh(这里因为我是ubuntu系统,你也可以执行setup-kubetools.sh,它会帮你判定系统),如果直接执行这个脚本时候肯定会报错,因为被墙了。
    sudo apt-get update && sudo apt-get install -y ca-certificates curl software-properties-common apt-transport-https curl
    curl -s https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add -
    sudo tee /etc/apt/sources.list.d/kubernetes.list <<EOF 
    deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
    EOF
    
    sudo apt-get update
    sudo apt-get install -y kubelet kubeadm kubectl
    sudo apt-mark hold kubelet kubeadm kubectl
    
  6. 在master上执行 sudo kubeadm init 会很慢甚至报错。换成国内的源。打印出来的信息请记住。sudo kubeadm init --image-repository=registry.aliyuncs.com/google_containers 也可参考Kubernetes k8s拉取镜像失败最简单最快最完美解决方法 [ERROR ImagePull]: failed to pull image k8s.gcr.io/kube-apiserver_Jasonix的博客-CSDN博客_k8s拉取镜像失败
    如果遇到别的问题自行百度了。
  7. 在master上配置网络,因为教程用的是weave,那我也是用它 
    kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"
  8. 根据显示的内容在worker1,worker2分别 kubeadm join,这里我会出现问题一直join不到master node,你自己要根据错误来解决,kubectl get pods -n kube-system.看哪个pod一直有问题然后用describe命令来看详细信息,我当时就遇到,一直被墙,kube-proxy一直处理init状态 参考此文不知道对你有没有帮助,还有出去了很久,然后token过期了,要重新生成 token,记住kubeadm都是在master上面执行。
    #重新生成token
    kubeadm token create --print-join-command
    解决k8s join node出现kube-flannel-ds服务状态Init kube-poxy 一直显示containercreating | Programming Notes
  9.  在master上面执行k get pods -n kube-system 看状态是否成功了。kubectl get nodes如果都是Ready,kubectl get pods -n 恭喜你,实验环境你已经搭建好了

  总结搭建过程:

  1. 配置静态IP
  2. 关闭swap,防火墙
  3. 在master,worker1,worker2。下载docker或者containerd.下载k8s
  4. 在master kubeadm init,根据init产生的内容执行相关命令
  5. 在master 配置网络
  6. worker1,worker2. join master node.

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值