k8s搭建(1.28.2版本)
不知道从什么时候开始,openEuler已经开始支持使用containerd的k8s集群了,之前我学习的时候最高都只能支持到1.23,所以这里再来写一篇关于部署运行时为containerd的集群
为什么要单独写关于openEuler的部署方式?
因为使用centos的部署方式在openEuler上部署的时候会有一些差异,而这些差异的地方就会导致无法继续往下进行,所以我单独写一篇博客来避开这些坑点
1. 安装containerd
你可能想问,一个containerd有什么不会安装的,直接使用yum不就可以安装好了吗?是的,你在其他操作系统上确实可以这么干,但是在openEuler上这么干不会报错,因为yum仓库里面确实有containerd的rpm包,你确实可以装上,但是那个containerd版本太低。无法正常的使用。所以需要下载tar包来安装
1.1 下载tar包
|
| |
|
| [root@master ~] |
|
| [root@master ~] |
|
| [root@master ~] |
|
| [root@master ~] |
1.2 编写服务单元文件
|
| [root@master ~] |
|
| |
|
| [Unit] |
|
| Description=containerd container runtime |
|
| Documentation=https://containerd.io |
|
| After=network.target local-fs.target |
|
| |
|
| [Service] |
|
| ExecStartPre=-/sbin/modprobe overlay |
|
| ExecStart=/usr/local/bin/containerd |
|
| |
|
| Type=notify |
|
| Delegate=yes |
|
| KillMode=process |
|
| Restart=always |
|
| RestartSec=5 |
|
| |
|
| |
|
| |
|
| LimitNPROC=infinity |
|
| LimitCORE=infinity |
|
| |
|
| |
|
| |
|
| TasksMax=infinity |
|
| OOMScoreAdjust=-999 |
|
| |
|
| [Install] |
|
| WantedBy=multi-user.target |
然后给containerd设计开机自启
|
| [root@master ~] |
|
| [root@master ~] |
2. 安装runc
这个也是一样的,不能使用yum安装的版本(至少面前不可以--文章写于2024-11-9)
|
| [root@master ~] |
|
| [root@master ~] |
|
| [root@master ~] |
|
| |
3. 安装cni插件
3.1 下载文件
|
| [root@master ~] |
|
| [root@master ~] |
|
| [root@master ~] |
3.2 设置crictl运行端点
|
| cat <<EOF > /etc/crictl.yaml |
|
| runtime-endpoint: unix:///run/containerd/containerd.sock |
|
| image-endpoint: unix:///run/containerd/containerd.sock |
|
| timeout: 5 |
|
| debug: false |
|
| EOF |
4. 配置containerd
|
| [root@master ~] |
|
| |
|
| [root@master ~] |
|
| |
|
| SystemdCgroup = true |
|
| |
|
| sandbox_image = "registry.aliyuncs.com/google_containers/pause:3.9" |
重启containerd
5. 主机配置
5.1 编辑hosts文件(可选)
将IP与主机名写入到/etc/hosts文件内,我这里就不做了。不做没有任何影响
5.2 开启流量转发
|
| [root@master ~] |
|
| [root@master ~] |
|
| [root@master ~] |
|
| net.bridge.bridge-nf-call-ip6tables = 1 |
|
| net.bridge.bridge-nf-call-iptables = 1 |
|
| net.ipv4.ip_forward = 1 |
|
| [root@master ~] |
5.3 关闭防火墙以及selinux
|
| [root@master ~] |
|
| [root@master ~] |
5.4 关闭swap
如果配置了swap,请关闭他
然后进入到/etc/fstab里面注释掉swap的那一行内容
6. 搭建k8s
到这里就开始搭建k8s了
6.1 配置yum源
|
| [root@master ~] |
|
| [kubernetes] |
|
| name=Kubernetes |
|
| baseurl=https://mirrors.huaweicloud.com/kubernetes/yum/repos/kubernetes-el7-$basearch |
|
| enabled=1 |
|
| gpgcheck=1 |
|
| repo_gpgcheck=0 |
|
| gpgkey=https://mirrors.huaweicloud.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.huaweicloud.com/kubernetes/yum/doc/rpm-package-key.gpg |
|
| EOF |
6.2 安装工具
|
| [root@master ~] |
|
| [root@master ~] |
6.3 初始化
- 这里的kubernetes-version后面的值修改为你自己的kubeadm的版本
|
| 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.200.200:6443 --token alefrt.vuiz4k7424ljhh2i \ |
|
| --discovery-token-ca-cert-hash sha256:1c0943c98d9aeaba843bd683d60ab66a3b025d65726932fa19995f067d62d436 |
看到这一段信息就是初始化成功了,然后我们根据提示来创建目录
|
| [root@master ~] |
|
| [root@master ~] |
|
| [root@master ~] |
,如果有其他节点需要加入集群那么就执行
|
| [root@master ~] |
|
| --discovery-token-ca-cert-hash sha256:1c0943c98d9aeaba843bd683d60ab66a3b025d65726932fa19995f067d62d436 |
然后我们可以查看节点状态
|
| [root@master ~] |
|
| NAME STATUS ROLES AGE VERSION |
|
| master NotReady control-plane 26s v1.28.2 |
接下来我们安装网络插件calico,让他的状态变为Ready
7. 网络插件
7.1 安装calico
|
| [root@master ~] |
|
| [root@master ~] |
接下来我们来处理第二个文件
|
| [root@master ~] |
|
| [root@master ~] |
|
| |
|
| |
|
| cidr: 10.244.0.0/16 |
7.2 配置镜像加速器地址
如果不配置镜像加速器地址的话。镜像是拉取不到的。
|
| [root@master ~] |
|
| |
|
| [plugins."io.containerd.grpc.v1.cri".registry.mirrors] |
|
| [plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"] |
|
| endpoint = ["镜像加速器地址1","镜像加速器地址2"] |
可以百度搜一下哪些镜像加速器地址还可以使用,然后替换掉里面的文字
重启containerd
然后等到他把所有的镜像拉取完之后集群就正常了
最终就是这样的
|
| [root@master ~] |
|
| NAME STATUS ROLES AGE VERSION |
|
| master Ready control-plane 15m v1.28.2 |
原创作者: fsdstudy 转载于: https://www.cnblogs.com/fsdstudy/p/18537011
所有评论(0)