翼度科技»论坛 云主机 LINUX 查看内容

搭建K8S集群

8

主题

8

帖子

24

积分

新手上路

Rank: 1

积分
24
搭建K8S集群

部署环境


  • 三台2核2G 20G硬盘的服务器或虚拟机,文中使用的系统是centos7.9
  • docker:19.03.15-3.el7
  • kubernetes:1.23.6
初始化操作

关闭防火墙
  1. systemctl stop firewalld
  2. systemctl disable firewalld
复制代码
关闭selinux
  1. sed -i 's/enforcing/disabled/' /etc/selinux/config
复制代码
关闭硬盘swap分区
  1. sed -ri 's/.*swap.*/#&/' /etc/fstab
复制代码
完成初始化操作后重启服务器(虚拟机)

根据规划设置主机名并修改/etc/hosts文件

hostnamectl set-hostname
安装docker(所有节点)

安装docker镜像源并创建yum元数据缓存
  1. [docker-ce-stable]
  2. name=Docker CE Stable - $basearch
  3. baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/$basearch/stable
  4. enabled=1
  5. gpgcheck=1
  6. gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
  7. [docker-ce-stable-debuginfo]
  8. name=Docker CE Stable - Debuginfo $basearch
  9. baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/debug-$basearch/stable
  10. enabled=0
  11. gpgcheck=1
  12. gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
  13. [docker-ce-stable-source]
  14. name=Docker CE Stable - Sources
  15. baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/source/stable
  16. enabled=0
  17. gpgcheck=1
  18. gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
  19. [docker-ce-test]
  20. name=Docker CE Test - $basearch
  21. baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/$basearch/test
  22. enabled=0
  23. gpgcheck=1
  24. gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
  25. [docker-ce-test-debuginfo]
  26. name=Docker CE Test - Debuginfo $basearch
  27. baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/debug-$basearch/test
  28. enabled=0
  29. gpgcheck=1
  30. gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
  31. [docker-ce-test-source]
  32. name=Docker CE Test - Sources
  33. baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/source/test
  34. enabled=0
  35. gpgcheck=1
  36. gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
  37. [docker-ce-nightly]
  38. name=Docker CE Nightly - $basearch
  39. baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/$basearch/nightly
  40. enabled=0
  41. gpgcheck=1
  42. gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
  43. [docker-ce-nightly-debuginfo]
  44. name=Docker CE Nightly - Debuginfo $basearch
  45. baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/debug-$basearch/nightly
  46. enabled=0
  47. gpgcheck=1
  48. gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
  49. [docker-ce-nightly-source]
  50. name=Docker CE Nightly - Sources
  51. baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/source/nightly
  52. enabled=0
  53. gpgcheck=1
  54. gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
复制代码
yum makecache创建元数据缓存
查看可用的docker-ce版本

yum list docker-ce --showduplicates

安装指定版本的docker

yum -y install docker-ce-19.03.15-3.el7
启动docker并加入开机自启

systemctl start docker && systemctl enable docker
编辑/etc/docker/daemon.json文件(没有就新建一个),配置docker镜像加速和相关配置项


重启docker

systemctl daemon-reload
systemctl restart docker
安装kubernetes(所有节点)

安装kubernetes镜像源
  1. [kubernetes]
  2. name=Kubernetes
  3. baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
  4. enabled=1
  5. gpgcheck=1
  6. repo_gpgcheck=1
  7. gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
复制代码
安装指定版本的kubeadm、kubectl、kubelet

yum -y install kubelet-1.23.6 kubeadm-1.23.6 kubectl-1.23.6
部署k8s-master

将kubelet加入开机启动项

systemctl enable kubelet
初始化k8s-master
  1. kubeadm init --apiserver-advertise-address=172.25.227.35 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.23.6 --service-cidr=10.96.0.0/12 --pod-network-cidr=10.244.0.0/16
复制代码

出现上图提示表示安装成功
配置k8s环境变量
  1. mkdir -p $HOME/.kube
  2. sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
  3. sudo chown $(id -u):$(id -g) $HOME/.kube/config
复制代码
k8s-node加入k8s集群


上文中初始化成功后会有kubeadm join命令,将其复制粘贴到需要加入k8s集群的node服务器上执行,以下是成功加入后的状态

在k8s-master上执行kubectl get nodes查看所有节点

在k8s-master上执行kubectl get componentstatus查看所有组件

此时各节点的状态还是NotReady,还没有部署好
使用kubectl get pods -n kube-system查看kube-system该命名空间中的pod,发现有两个pod处于pending状态

使用kubectl describe pods -n kube-system coredns-6d8c4cb4d-nvrcl查看第一个没有部署好的pod

pod描述中的警告是失败的调度,由于存在污点"node.kubernetes.io/not-ready",被部署的pod不能容忍这个污点导致无法部署pod(污点和容忍会在后续的文章中介绍)
这是还没有部署网络插件,master无法访问node导致的
部署CNI网络插件

下载calico配置文件

curl -O https://raw.githubusercontent.com/projectcalico/calico/v3.26.1/manifests/calico.yaml
修改calico配置文件

修改"CALICO_IPV4POOL_CIDR"配置项,与k8s初始化时的CIDR相同,上文中是"10.244.0.0/16"

修改docker镜像地址,原有的docker镜像地址是docker官网镜像地址,删除"docker.io/",使用自己的镜像加速地址

使用kubectl apply -f calico.yaml构建pod,使用kubectl get pods -n kube-system查看pods

构建容器需要下载镜像,需要等待一段时间,待所有pod部署完成后,查看node状态


来源:https://www.cnblogs.com/mr-wushuang/p/17999719
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

举报 回复 使用道具