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包

# 确保没有使用官方仓库的containerd
[root@master ~]# yum remove containerd -y
[root@master ~]# wget https://github.com/containerd/containerd/releases/download/v1.7.16/containerd-1.7.16-linux-amd64.tar.gz
[root@master ~]# tar -zxvf containerd-1.7.16-linux-amd64.tar.gz
[root@master ~]# mv bin/* /usr/local/bin/

1.2 编写服务单元文件

[root@master ~]# vim /usr/lib/systemd/system/containerd.service

[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 # Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNPROC=infinity
LimitCORE=infinity # Comment TasksMax if your systemd version does not supports it.
# Only systemd 226 and above support this version.
TasksMax=infinity
OOMScoreAdjust=-999 [Install]
WantedBy=multi-user.target

然后给containerd设计开机自启

[root@master ~]# systemctl daemon-reload
[root@master ~]# systemctl enable --now containerd

2. 安装runc

这个也是一样的,不能使用yum安装的版本(至少面前不可以--文章写于2024-11-9)

[root@master ~]# yum remove runc -y
[root@master ~]# wget https://github.com/opencontainers/runc/releases/download/v1.1.12/runc.amd64
[root@master ~]# install -m 755 runc.amd64 /usr/local/sbin/runc

3. 安装cni插件

3.1 下载文件

[root@master ~]# wget https://github.com/containernetworking/plugins/releases/download/v1.4.1/cni-plugins-linux-amd64-v1.4.1.tgz
[root@master ~]# mkdir -p /opt/cni/bin
[root@master ~]# tar Cxzvf /opt/cni/bin cni-plugins-linux-amd64-v1.4.1.tgz

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 ~]# containerd config default > /etc/containerd/config.toml
# 将cgroup打开
[root@master ~]# vim /etc/containerd/config/toml
# 找到这一行配置,将false改为true
SystemdCgroup = true
# 修改sandbox镜像地址
sandbox_image = "registry.aliyuncs.com/google_containers/pause:3.9"

重启containerd

[root@master ~]# systemctl restart containerd

5. 主机配置

5.1 编辑hosts文件(可选)

将IP与主机名写入到/etc/hosts文件内,我这里就不做了。不做没有任何影响

5.2 开启流量转发

[root@master ~]# modprobe bridge
[root@master ~]# modprobe br_netfilter
[root@master ~]# vim /etc/sysctl.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
[root@master ~]# sysctl -p

5.3 关闭防火墙以及selinux

[root@master ~]# sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config
[root@master ~]# systemctl disable --now firewalld

5.4 关闭swap

如果配置了swap,请关闭他

[root@master ~]# swapoff -a

然后进入到/etc/fstab里面注释掉swap的那一行内容

6. 搭建k8s

到这里就开始搭建k8s了

6.1 配置yum源

[root@master ~]#  cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[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 ~]# yum install kubectl kubeadm kubelet -y
[root@master ~]# systemctl enable kubelet

6.3 初始化

[root@master ~]#  kubeadm init --kubernetes-version=v1.28.2 --pod-network-cidr=10.244.0.0/16 --image-repository=registry.aliyuncs.com/google_containers
  • 这里的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 ~]# mkdir -p $HOME/.kube
[root@master ~]# sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
[root@master ~]# sudo chown $(id -u):$(id -g) $HOME/.kube/config

,如果有其他节点需要加入集群那么就执行

[root@master ~]# kubeadm join 192.168.200.200:6443 --token alefrt.vuiz4k7424ljhh2i \
--discovery-token-ca-cert-hash sha256:1c0943c98d9aeaba843bd683d60ab66a3b025d65726932fa19995f067d62d436

然后我们可以查看节点状态

[root@master ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
master NotReady control-plane 26s v1.28.2

接下来我们安装网络插件calico,让他的状态变为Ready

7. 网络插件

7.1 安装calico

[root@master ~]#  wget https://raw.githubusercontent.com/projectcalico/calico/v3.27.0/manifests/tigera-operator.yaml
[root@master ~]# kubectl create -f tigera-operator.yaml

接下来我们来处理第二个文件

[root@master ~]# wget https://raw.githubusercontent.com/projectcalico/calico/v3.27.0/manifests/custom-resources.yaml
[root@master ~]# vim custom-resources.yaml # 将里面的cidr改为初始化集群使用的地址段
cidr: 10.244.0.0/16

7.2 配置镜像加速器地址

如果不配置镜像加速器地址的话。镜像是拉取不到的。

[root@master ~]# vim /etc/containerd/config.toml
# 需要找到这一行,并添加2行
[plugins."io.containerd.grpc.v1.cri".registry.mirrors]
[plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]
endpoint = ["镜像加速器地址1","镜像加速器地址2"]

可以百度搜一下哪些镜像加速器地址还可以使用,然后替换掉里面的文字

重启containerd

[root@master ~]# systemctl restart containerd

然后等到他把所有的镜像拉取完之后集群就正常了

最终就是这样的

[root@master ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
master Ready control-plane 15m v1.28.2

openEuler搭建k8s(1.28.2版本)的更多相关文章

  1. 第九章 搭建Hadoop 2.2.0版本HDFS的HA配置

    Hadoop中的NameNode好比是人的心脏,非常重要,绝对不可以停止工作.在hadoop1时代,只有一个NameNode.如果该NameNode数据丢失或者不能工作,那么整个集群就不能恢复了.这是 ...

  2. kubeadm搭建K8s集群及Pod初体验

    基于Kubeadm 搭建K8s集群: 通过上一篇博客,我们已经基本了解了 k8s 的基本概念,也许你现在还是有些模糊,说真的我也是很模糊的.只有不断地操作去熟练,强化自己对他的认知,才能提升境界. 我 ...

  3. 教你用multipass快速搭建k8s集群

    目录 前言 一.multipass快速入门 安装 使用 二.使用multipass搭建k8s集群 创建3台虚拟机 安装master节点 安装node节点 测试k8s集群 三.其他问题 不能拉取镜像:报 ...

  4. 简单三分钟,本地搭建 k8s

    使用 minikube 在本地搭建 k8s 已经比以前要简单很多了.本文,我们通过简短的三分钟来重现一下在本地搭建 k8s 实验环境的步骤. Newbe.Claptrap 是一个用于轻松应对并发问题的 ...

  5. kubeadm 搭建 K8s

    kubeadm 搭建 K8s 本篇主要记录一下 使用 kubeadm 搭建 k8s 详细过程 ,环境使用 VirtualBox 构建的3台虚拟机 1.环境准备 操作系统:Centos7 (CentOS ...

  6. 使用kubeadm方式搭建K8S集群

    使用kubeadm方式搭建K8S集群 kubeadm是官方社区推出的一个用于快速部署kubernetes集群的工具. 这个工具能通过两条指令完成一个kubernetes集群的部署: # 创建一个 Ma ...

  7. Kubernetes_从零开始搭建k8s集群(亲测可用)

    一.前言 本文讲述从零开始搭建k8s集群,均使用国内镜像,版本均统一,使用两个虚拟机,一个主节点,一个从节点,保证k8s一次搭建成功. 注意:Kubernetes,简称K8s,是用8代替名字中间的8个 ...

  8. 轻松搭建自己的Linux发行版本

    许多人想要搭建自己的Linux发行版本,可能是觉得有趣,也可能是为了学习更多的Linux知识,或者因为他们有很正式的问题要解决.但是秘密是:自己搭建完美的发行版本不是很困难的一件事.事实上,我们收集了 ...

  9. 使用Rancher搭建K8S测试环境

    使用Rancher搭建K8S测试环境 http://blog.csdn.net/csdn_duomaomao/article/details/75316926 环境准备(4台主机,Ubuntu16.0 ...

  10. kubeadm 搭建 K8S集群

    kubeadm是K8s官方推荐的快速搭建K8s集群的方法. 环境: Ubuntu 16.04 1 安装docker Install Docker from Ubuntu’s repositories: ...

随机推荐

  1. [nRF24L01+] 4. 增强型ShockBurst

    4. 增强型ShockBurst 增强型的ShockBurst是一个数据链路层,具有自动数据包组装和数据包的发送.定时.自动确认和重传.这些特性能够显著提高双向和单向系统的能效,而不会增加主机控制器侧 ...

  2. 瑞芯微-I2S | 音频驱动调试基本命令和工具-基于rk3568-2

    基于Linux嵌入式设备常用调试方法很多,本文一口君把调试语音用到的工具和方法给大家做一个简单的介绍. 1. procfs.sysfs Linux系统上的/proc目录是一种文件系统,即proc文件系 ...

  3. MYSQL——mysql检索不包含字母U的数据

    2024/07/09 1. NOT LIKE 2. IS NOT.<>.!= 3. NOT IN 如题,正确答案如下: SELECT * FROM your_table_name WHER ...

  4. MSI Afterburner 使用

    MSI Afterburner 是一款显卡超频软件,同时可以监测硬件运行数据(CPU 温度.GPU 温度.帧率.帧生成时间等).与其捆绑安装的 RivaTuner Statistics Server ...

  5. 计算机Power电源状态

    在计算机电源管理中,S1, S2, S3, S4 代表不同的电源状态或睡眠状态. 了解这些状态,对计算机设备理解功耗及工作状态有很大帮助.最近公司开会,系统同事有讲S3状态功耗很低,我猜和电脑的睡眠. ...

  6. 解密华为问界M7 Pro:智能出行的全新里程碑与技术亮点

    解读华为问界M7 Pro的智能里程碑 引言 2024年8月,智能出行领域迎来了一个激动人心的时刻--问界M7 Pro的重磅发布.这款智能SUV,不仅是华为在汽车领域的又一次大胆尝试,更是鸿蒙智行系统的 ...

  7. SpringBoot启动项目报错:java.lang.UnsatisfiedLinkError: D:\files\software\jdk-15.0.1\jdk-17.0.3.1\bin\tcnative-1.dll: Can't load IA 32-bit .dll on a AMD 64-bit platform

    目录 问题描述 解决方法: 问题描述 在运行向的时候出现报错: java.lang.UnsatisfiedLinkError: D:\files\software\jdk-15.0.1\jdk-17. ...

  8. Unocss使用

    目录: 安装 简单使用 自定义规则 安装 { "dependencies": { "unocss": "^0.55.6", "vu ...

  9. Google Analytics & Ads 学习笔记

    更新: 2021-09-13 Naming conversion for event category, action, label https://support.google.com/analyt ...

  10. C++ 数据输入cin (解决CLoin输入中文程序出错)

    数据输入cin 语法:cin >> 变量 解决 CLoin 使用cin输入中文程序无法正常运行 按住Ctrl+alt+shift+/键 弹出对话框选择注册表 取消勾选run.process ...