From de7bd64f69b96e41462a3e9b0c858e763fa4736f Mon Sep 17 00:00:00 2001 From: yekelu <925830483@qq.com> Date: Wed, 14 Aug 2024 21:27:26 +0800 Subject: [PATCH] add containerd install --- ...2\346\214\207\345\215\227 - containerd.md" | 183 ++++++++++++++++++ .../Kubernetes/figures/advertiseAddress.png | Bin 0 -> 4940 bytes docs/zh/docs/Kubernetes/figures/name.png | Bin 0 -> 3416 bytes docs/zh/docs/Kubernetes/figures/podSubnet.png | Bin 0 -> 3346 bytes docs/zh/menu/index.md | 1 + 5 files changed, 184 insertions(+) create mode 100644 "docs/zh/docs/Kubernetes/Kubernetes\351\233\206\347\276\244\351\203\250\347\275\262\346\214\207\345\215\227 - containerd.md" create mode 100644 docs/zh/docs/Kubernetes/figures/advertiseAddress.png create mode 100644 docs/zh/docs/Kubernetes/figures/name.png create mode 100644 docs/zh/docs/Kubernetes/figures/podSubnet.png diff --git "a/docs/zh/docs/Kubernetes/Kubernetes\351\233\206\347\276\244\351\203\250\347\275\262\346\214\207\345\215\227 - containerd.md" "b/docs/zh/docs/Kubernetes/Kubernetes\351\233\206\347\276\244\351\203\250\347\275\262\346\214\207\345\215\227 - containerd.md" new file mode 100644 index 000000000..a001d3995 --- /dev/null +++ "b/docs/zh/docs/Kubernetes/Kubernetes\351\233\206\347\276\244\351\203\250\347\275\262\346\214\207\345\215\227 - containerd.md" @@ -0,0 +1,183 @@ +# Kubernetes集群部署指南 - containerd +Kubernetes自1.21版本开始不再支持Kubernetes+docker部署Kubernetes集群,本文介绍以containerd作为容器运行时快速搭建Kubernetes集群。若需要对集群进行个性化配置,请查阅https://kubernetes.io/zh-cn/docs/home/ +## 软件包安装 +### 1. 安装必要软件包 +``` +$ yum install -y containerd +$ yum install -y kubernetes* +$ yum install -y cri-tools +$ wget https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube-flannel.yml --no-check-certificate +``` +**注意:**如果系统中已经安装了Docker,请确保在安装containerd之前卸载Docker,否则可能会引发冲突。 + +我们要求使用1.6.22-15或更高版本的containerd,如果下载的版本过低请运行以下命令升级成1.6.22-15版本,或自行升级: + +``` +$ wget --no-check-certificate https://repo.openeuler.org/openEuler-24.03-LTS/update/x86_64/Packages/containerd-1.6.22-15.oe2403.x86_64.rpm +$ rpm -Uvh containerd-1.6.22-15.oe2403.x86_64.rpm +``` +### 2. 下载cni组件 + +``` +$ mkdir -p /opt/cni/bin +$ cd /opt/cni/bin +$ wget --no-check-certificate https://github.com/containernetworking/plugins/releases/download/v1.5.1/cni-plugins-linux-amd64-v1.5.1.tgz +$ tar -xzvf ./cni-plugins-linux-amd64-v1.5.1.tgz -C . +``` +**注意**:这里提供的是AMD64架构版本的下载链接,请根据系统架构选择合适的版本,其他版本可从https://github.com/containernetworking/plugins/releases/获取。 + +### 3. 教程软件包版本 + +``` +1. containerd + -架构:x86_64 + -版本:1.6.22-15 +2. kubernetes - client/help/kubeadm/kubelet/master/node + -架构:x86_64 + -版本:1.29.1-4 +3. cri-tools + -架构:X86_64 + -版本:1.29.0-3 +``` +## 环境配置 +本节对Kubernetes运行时所需的操作系统环境进行配置。 +### 1. 设置主机名 + +``` +$ hostnamectl set-hostname nodeName +``` +### 2. 关闭防火墙 + +``` +$ systemctl stop firewalld +$ systemctl disable firewalld +``` +### 3. 禁用SELinux +``` +$ setenforce 0 +$ sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config +``` +### 4. 禁用swap +``` +$ swapoff -a +$ sed -ri 's/.*swap.*/#&/' /etc/fstab +``` +### 5. 网络配置 + +``` +$ cat > /etc/sysctl.d/k8s.conf << EOF +net.bridge.bridge-nf-call-ip6tables = 1 +net.bridge.bridge-nf-call-iptables = 1 +net.ipv4.ip_forward = 1 +vm.swappiness=0 +EOF +$ modprobe br_netfilter +$ sysctl -p /etc/sysctl.d/k8s.conf +``` +## 配置containerd +本节对containerd进行配置,包括设置pause_image、cgroup驱动、关闭"registry.k8s.io"镜像源证书验证、配置代理 + +``` +$ containerd_conf="/etc/containerd/config.toml" +$ mkdir -p /etc/containerd +$ containerd config default > "${containerd_conf}" +$ pause_img=$(kubeadm config images list | grep pause | tail -1) +$ sed -i "/sandbox_image/s#\".*\"#\"${pause_img}\"#" "${containerd_conf}" +$ sed -i "/SystemdCgroup/s/=.*/= true/" "${containerd_conf}" +$ sed -i '/plugins."io.containerd.grpc.v1.cri".registry.configs/a\[plugins."io.containerd.grpc.v1.cri".registry.configs."registry.k8s.io".tls]\n insecure_skip_verify = true' /etc/containerd/config.toml + +$ server_path="/etc/systemd/system/containerd.service.d" +$ mkdir -p "${server_path}" +$ cat > "${server_path}"/http-proxy.conf << EOF +[Service] +Environment="HTTP_PROXY=http://peulerosweb:EulerOS_123@proxyhk.huawei.com:8080" +Environment="HTTPS_PROXY=http://peulerosweb:EulerOS_123@proxyhk.huawei.com:8080" +Environment="NO_PROXY=localhost,rnd-dockerhub.huawei.com,10.96.0.1" +EOF + +$ systemctl daemon-reload +$ systemctl restart containerd +``` +## 配置crictl使用containerd +``` +$ crictl config runtime-endpoint unix:///run/containerd/containerd.sock +$ crictl config image-endpoint unix:///run/containerd/containerd.sock +``` +## 配置kubelet使用systemd作为cgroup驱动 + +``` +$ systemctl enable kubelet.service +$ echo 'KUBELET_EXTRA_ARGS="--runtime-cgroups=/systemd/system.slice --kubelet-cgroups=/systemd/system.slice"' >> /etc/sysconfig/kubelet +$ systemctl restart kubelet +``` +## 使用Kubeadm创建集群(仅控制平面需要) +### 1. 配置集群信息 + +``` +$ kubeadm config print init-defaults --component-configs KubeletConfiguration >> kubeletConfig.yaml +$ vim kubeletConfig.yaml +``` +在kubeletConfig.yaml文件中,配置节点名称、广播地址(advertiseAddress)以及Pod网络的CIDR。 +**修改name为主机名,与环境配置第一步一致** +![](./figures/name.png) +**将advertiseAddress修改为控制平面的ip地址:** +![](./figures/advertiseAddress.png) +**在Networking中添加podSubnet指定CIDR范围** +![](./figures/podSubnet.png) + +### 2. 部署集群 +这里使用kubeadm部署集群,许多配置是默认生成的(如认证证书),如需修改请查阅https://kubernetes.io/zh-cn/docs/home/ + +**关闭代理(如有)** +``` +$ unset http_proxy https_proxy +``` +使用kubeadm init部署集群: + +``` +$ kubeadm init --config kubeletConfig.yaml +$ mkdir -p "$HOME"/.kube +$ cp -i /etc/kubernetes/admin.conf "$HOME"/.kube/config +$ chown "$(id -u)":"$(id -g)" "$HOME"/.kube/config +$ export KUBECONFIG=/etc/kubernetes/admin.conf +``` +### 3. 部署cni插件(flannel) +本教程中使用flannel作为cni插件,以下介绍flannel下载和部署。 +以下使用的flannel从registry-1.docker.io镜像源下载,为避免证书验证失败的问题,请在containerd配置文件(/etc/containerd/config.toml)中配置该镜像源跳过证书验证。 +![](http://image.huawei.com/tiny-lts/v1/images/4e8b7f5034df701007d90e920aa58447_691x113.png) + +使用kubectl apply部署我们最开始在软件包安装中下载的kube-flannel.yml +``` +$ kubectl apply -f kube-flannel.yml +``` +注:控制平面可能会有污点的问题,导致kubeamd get nodes中节点状态无法变成ready,请查阅:https://kubernetes.io/zh-cn/docs/concepts/scheduling-eviction/taint-and-toleration/ 去除污点。 +## 加入集群(仅工作节点需要) +**关闭代理(如有)** +``` +$ unset http_proxy https_proxy +``` +工作节点安装配置完环境后可以通过以下命令加入集群。 + +``` +$ kubeadm join : --token --discovery-token-ca-cert-hash sha256: +``` +这个命令会在控制平面库kubeadm init结束后生成,也可以在控制平面按照以下命令获取: + +``` +$ kubeadm token create #生成token +$ openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | \ + openssl dgst -sha256 -hex | sed 's/^.* //' #获取hash +``` + +加入后可以在控制平面通过以下命令查看工作节点的状态: + +``` +$ kubectl get nodes +``` +如果节点状态显示为not ready,可能是因为Flannel插件未成功部署。在这种情况下,请运行本地生成的Flannel可执行文件来完成部署。 +**在工作节点运行kubectl命令(可选)** +如果需要在工作节点上运行kubectl命令,需要将控制面板的/etc/kubernetes/admin.conf复制到同样的目录,然后运行以下命令: + +``` +$ export KUBECONFIG=/etc/kubernetes/admin.conf +``` \ No newline at end of file diff --git a/docs/zh/docs/Kubernetes/figures/advertiseAddress.png b/docs/zh/docs/Kubernetes/figures/advertiseAddress.png new file mode 100644 index 0000000000000000000000000000000000000000..b36e5c4664f2d2e5faaa23128fd4711c11e30179 GIT binary patch literal 4940 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 literal 0 HcmV?d00001 diff --git a/docs/zh/docs/Kubernetes/figures/name.png b/docs/zh/docs/Kubernetes/figures/name.png new file mode 100644 index 0000000000000000000000000000000000000000..dd6ddfdc3476780e8c896bfd5095025507f62fa8 GIT binary patch literal 3416 zcmWlc3p~^7AIC-K&<$N2$z!f1DRiPTX0*;qE6NcSvq=sum&k3*q;g4(I;pALy8Tn~ zGezr|tlY(z>%w6ohK*s^W@G=I=k;8^&-Zy=@9+2dyk5`i^*pyvyB*uKe#d$h6_rh{ z$B%lbsI1{CZLEfxvhV81-K3(Tia34J^A7-kfJG4q1OT8tTZMoC?E+vLn4tl%0f3-f z_M-u07C=*!GtaUt0758efN7<%1dwMd4UPl?0YqU52#^30D18JL1?@=DykQdRsB8>1L9Q3NIHpl@0d;6Tqw= zm@3dY0GvP*C=>$N<(Fj+Kn5^E`Jn><>?$z)0E`u<7z#X|K!H$xz=lL~1h8FxGz=+3 zaY{i2MlXSJ3os!Npf+G)2>?VP*!ZE*1PDb6p-@-=jXn-wgHDk-=s`G%wu?lAQ-x?{ zp+LYdi^XD5D9|7t4-wEKz>Exxn84%{FoBd>05eRP5blR&u>>}LG*lUzMInp;(<8vZ z7r+hy0|G(G5Ksu{L6_ZtKw;qV0N5T-o?58`8lb4`*TDD$fK>w%A~4JX#s$E57ZQyr zV=M3&hAn`T*e6`Pz<(Z^!V7~Up;2W*0;H5jsTmqY%7P#kq--n-1PPR(2mt*Pn0^5! zr+@*4#X?a-B3&?%wwN3*JlJhJi1*6b4F)l`0PK$34I(jk1;$oMf+&=(^cTe{D(ib) zkGgoq^-p7OC;eNe11nuB9}Ud=er42dsln~|M*H-w<}o*Jmkn&8nznUlZ!vmkfIAzsckxw&`j0r+^ z7`(lM6Uxqy#HQd`{o$TnvZbpYPEN(DE_8M74icu_9bDWig6YkQapw(}ZpwC& zN5^7)vKAU&U8%v?ufn!C_Ve#^I~X{+oc3;5EIP=fAq3Rz=>tgJZfOi=(%YVyn`g1A z-hyvj{WLC}`k952B+B*9bH_M?TKm~M$Z9L%e$}NDKdAnF(@a%!#)dUy%!@QDZqgcd^Kj_} z#!kP@%~KM#F?W)aUs6*NxwYR)V?4W1f?~&wUTcR6M=nhl)GsqGAu3=~0rHLVq2-6x zTQ?O)knhlT%t?&xVOzJX&*2$qYZO0k^mF6XPJBv^VLrq?X41za0{iD%dct^*pmRqA z+a=S!oN5zkNun=hZXi1*VA$KgOLX~_diMx@U3|yUq`33NWYp5he`b;n3>!l+K6Rxy z-UHE@r+zITZ*WJNQt{GM$x>k=DQmnWo(6h`JcwVG?6e{(^evf@Fw-khP9^+j4;qNt zXWeHVdOoX<61vq4u*c!%WO*LH`fzT)gO!`xiTvy9R-gWK(LL6mTQF%owloqT3-WmL zRI)tsUCpQZe{Rp-y{4+k)-dQkp}e_idd5=r=WB=Szsih17H4jt>kfo2PM5|R+pR=L z<0C38BVrEQt(euu_#;O=Ph~gi^I~V;A_SQ}ciYn79gXeZ+U|&Q-okjXQvoHiH~fne z%*}Gma8^QMXQ@u3nM0yZkJde0X)KDCZCGPCBsCaMWZ*n`%w?B9-L2CE$NFUb4Sk_> z(R(EGGri_6R(v4X+fcWkn3%JHep>7RhwQ|6%^(4 z%Cu>Yj_2R%L^3U;ww0()Nev>a%C}QFPn1$#TY2{49yT(p!!X0HzL@cDIo|#f@@)ct z>V3Ju2|49pMMEV9t58R;cxPEySN*_g$tM4uzf837w^;V4;^wquP1j3=x0ibodq(d* zBcFSK!|ovW)s@@5ycL6!qQ?H>CT7YINM-}9+AuI}*e;mk=*;+{ww#<@!ITW7Y+dU5 zFq#|uAiSR{Ne|NK+s2b<7<6y)7kXG2$6E z>`++0IR0#|zBgl)+ouCVwtNbyFnKHMeakIMeAB2`D-ZtLoMFlczxjY1aq0%t-F#Lx z`ChPXHt*0wugP_%(S7>COwp0I``pWIH*Ff1{GQwB)n|4!e$Wq?Y zW~`{gan9%34G(_uz)-H7Siw-AS1FM_Pb8*{JB=GL_Xtn7r(HJ?Y4pgCUtahWEQ_;g zKRH*t9O2{i=jz!%SQ{pYYfG4}A8$cx;rbI{MWxf4oM{N38ko=inEz&`W>|ZCP3lh_ zs|;LD`+|k;o~+aDH#6YxBM&pbC$%tF1O3|h%~Ci{aaO(~?^MVnhf`%UICFv*8=Cy# zU=av8=l5)hNgeh6P6-PZ-RUa0xH#+_s_7v~~f{7UKg$j2&#I04mc@^Vu zc7b=1CEwA-!t}`Pn7aiXkVvCKv-z>t*-*s(t1FhvBk8vb9`|xp*07IU>FI;=&puhcQ@1bFQyn3Fms{b#>sCd{M=C~@;1)FtmFByx?qUCGX(qV*9g?RM>6@_)@bwr0rqn49u$E>>NG)l&F^JQ zb{T5U{~LcwPU`y9u?VZJa;mqUh&z*m5V5FMn+;vnUPq5N$;EBfplK{~=C$blHjrHo z!%9Lm%dV!nVJ^HMRKOfk3#5@i6QBmS+ z^bH;@F^cFs8nm%pJ*CQpR9)1$sRQCVOia0QunL}e=E?*vgY^{2_{WOeCrJ3mNE0BA zgcpUxE9%ASQzRV{4xdIIGOLPZ{}A6!3R&eb69E^Lxi{e+~vLJ54 zx4U6Q(t5Ebd`J?WM6Ejbt+djuGVX~^CO|mPd6DEJGPP;(ug?v*4%>h4w@Sf1(p4fx z2ENw5&VL?f2_v&)YNnFF*&!DnYhO51(0SQude8XvOHpg+;~Z|2>6B38fXWc-tO zfx7I{Xv^#R;@eVO~1;ObPJJ+Cuoq~t86Ps(K!tIqY-$OpECmt442 ze`Z_w&VrajL-BL_GU!{z85Tn)9Nlsg`ZMWdv6cPQrLPov+k>ZWJL0MqpBv}Qh>yoq zMd!4kJx2FMj5ZQ?T;B@9E85w!m`_{EuJ90IjpQ%;)~)^TiK(se-*8-GRm&N^Kc2KE S)KU3kQgQvm?I?5vf8+mvOA0*z literal 0 HcmV?d00001 diff --git a/docs/zh/docs/Kubernetes/figures/podSubnet.png b/docs/zh/docs/Kubernetes/figures/podSubnet.png new file mode 100644 index 0000000000000000000000000000000000000000..b368f77dd7dfd7722dcf7751b3e37ec28755e42d GIT binary patch literal 3346 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 - [运行测试pod]({{< relref "./docs/Kubernetes/运行测试pod.md" >}}) - [常见问题与解决方法]({{< relref "./docs/Kubernetes/常见问题与解决方法.md" >}}) + - [基于containerd部署集群]({{< relref "./docs/Kubernetes/Kubernetes集群部署指南 - containerd.md" >}}) - [云原生混合部署rubik用户指南]({{< relref "./docs/rubik/overview.md" >}}) - [安装与部署]({{< relref "./docs/rubik/安装与部署.md" >}}) - [http接口文档]({{< relref "./docs/rubik/http接口文档.md" >}}) -- Gitee