Kubeadm安装Kubernetes1.20详细图文教程

时间:2021-05-02

写在前面

本文暂无理论,如果按照文章安装应该没有异常,但不排除环境导致,本着先安装在实践中不断地学习的原则,写下这篇文章,文中部分来自于互联网的故障处理办法,基于kubeadm安装,如果错误,请及时指出。

正文

环境

  • 系统环境:CentOS 7.5
  • master:192.168.31.55
  • node:192.168.31.61
  • Kubernetes版本:1.20.5

kubeadm安装

1.添加国内源

  • cat<<EOF>/etc/yum.repos.d/kubernetes.repo
  • [kubernetes]
  • name=Kubernetes
  • baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
  • enabled=1
  • gpgcheck=0
  • repo_gpgcheck=0
  • gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
  • http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
  • EOF
  • 2.安装kubeadm

  • yum-yinstallkubeletkubeadmkubectldocker
  • 3.查看镜像版本

  • kubeadmconfigimageslist
  • 4.编辑安装脚本

  • images=(
  • kube-apiserver:v1.20.5
  • kube-controller-manager:v1.20.5
  • kube-scheduler:v1.20.5
  • kube-proxy:v1.20.5
  • pause:3.2
  • etcd:3.4.13-0
  • coredns:1.7.0
  • )
  • forimageNamein${images[@]};do
  • dockerpullregistry.cn-hangzhou.aliyuncs.com/google_containers/$imageName
  • dockertagregistry.cn-hangzhou.aliyuncs.com/google_containers/$imageNamek8s.gcr.io/$imageName
  • dockerrmiregistry.cn-hangzhou.aliyuncs.com/google_containers/$imageName
  • done
  • 5.出现下图,开启docker服务。

  • systemctlstartdocker&&systemctlenabledocker
  • kubeadm初始化集群

  • kubeadminit--pod-network-cidr=172.17.0.0/16
  • 关闭swap分区

  • swapoff-a
  • 出现异常

    docker状态异常

  • dockerlogs[你的dockerid]
  • 查看docker日志

  • ####这里多半为selinux未关闭####
  • vim/etc/selinux/config
  • reboot
  • kubeadmreset
  • hosts文件未写

    添加hosts文件记录

    初始化成功

    如果出现该错误请执行下列命令

    增加管理配置文件变量

  • mkdir-p$HOME/.kube
  • cp-i/etc/kubernetes/admin.conf$HOME/.kube/config
  • chown$(id-u):$(id-g)$HOME/.kube/config
  • 解决NotReady问题

    安装flannel

    如果出现超时,可以直接访问连接,直接复制粘贴,手工创建yaml文件(实在无法访问,可以私信我)

  • kubectlapply-fhttps://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
  • 增加node节点

    1.关闭selinux和swap(略,如上)

    2.导入阿里源(略,如上)

    3.安装kubeadm

    4.加入K8S集群

    前提条件为hosts文件已经添加,docker服务启动(systemctl enable docker && systemctl start docker)

  • ####在master获取token及加入命令####
  • kubeadmtokencreate--print-join-command
  • ####在node执行接口####
  • kubeadmjoin192.168.31.55:6443--tokenphuth9.n4lajzj9fx4fxvsr--discovery-token-ca-cert-hashsha256:47860bea93955508dbf06ef8a62a3d97b02fead4f4160e3cfb1c246067c041d9
  • 获取加入命令

    此时加入成功

    但此时状态一直未Notready

    查看kube-system下pod的情况,发现此时状态为异常状态

  • kubectlgetpods-nkube-system
  • 异常pod

  • ####查看详细信息,主要是报错信息####
  • kubectldescribepodkube-flannel-ds-tllzn--namespace=kube-system
  • 在node节点主动拉取镜像

  • dockerpullregistry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.2
  • 在master节点查看相关镜像名称及标签,调整node节点标签

  • ####记住是主节点执行该命令####
  • dockerimagelist
  • 修改tag与master节点一致

  • ####记住在node节点操作####
  • dockertagregistry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.2k8s.gcr.io/pause:3.2
  • 修改标签

    此时正常

    再查看相关状态,发现kube-proxy依然有点问题,继续查看

    状态异常

    因为超时,同样的方法处理

    同样的方法

    查看此时的状态,应该都是正常的

    node正常

    pod正常

    总结

    整体下来花费的时长比较长,过程不算曲折,node节点较折腾,但是官方文档还算是给力,另外测试时间比较久,初学不久,如果错误请包涵,共勉。

    原文地址:https://www.toutiao.com/i6942511260185444871/

    声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

    相关文章