rockylinux9 安装二进制k8s-1.33的几个关键点

因为之前安装过k8s-1.25这个版本

 所以在部署新版本1.33的时候,基本安装方式不变,有几个特别注意的地方标注一下,1.33 版本要求

首先是容器运行时的选择

https://kubernetes.io/zh-cn/docs/setup/production-environment/container-runtimes/

 这边选择的之前常用的containerd

containerd最新版是2.1 发现阿里云的ACK 也是默认用的2.1版本

 

https://github.com/containerd/containerd

所以选择用2.1版本之前一定保证你的glibc 库是不小于2.32,推荐新安装用户用Rockylinux 9 最新版,目前是9.6

如果不想安装新系统,直接可以升级系统,这边前面写过一篇升级系统的文章 

https://www.cnblogs.com/centos-python/articles/18912627

containerd config default > /etc/containerd/config.toml
这个几个关键点需要修改一下
修改debug配置,默认级别是info,日志有点多,生产环境改成error
[debug]
  address = "/run/containerd/debug.sock"
  uid = 0
  gid = 0
  level = "error"

推荐使用 systemd 驱动来管理 cgroup

https://baijiahao.baidu.com/s?id=1799249210398206218&wfr=spider&for=pc

由于systemd 已经集成了对系统和服务的管理,使用 systemd 驱动程序可以简化容器的资源管理,并且与 Kubernetes 等容器编排工具的集成更加顺畅

后面的kubelet 组件也推荐用systemd的

#加入SystemdCgroup = true
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]
  SystemdCgroup = true

基础镜像的地址修改成私有地址

 基本就这三点

启动文件

 

 

用github 官网的这个启动文件就可以了

接下来是kubelet 组件的安装

有几点需要说明

这个是1.25 之前的配置

 启动报错

journalctl -u kubelet 

 这个警告信息表明在启动kubelet时使用了已经被弃用的命令行参数,现在基本都在kubelet-config-file 配置

官网中文参数说明

https://kubernetes.io/zh-cn/docs/reference/config-api/kubelet-config.v1beta1/

 

 

启动文件

 

基本安装1.33 就这几个需要注意的,其它组件按1.25 安装文档安装就行

最后一个关键的点网络插件的安装,延续之前的用cilium,可以不用安装kube-proxy

参考文章:https://www.cnblogs.com/centos-python/articles/14889650.html

cilium 的网络插件,同时取代 kube-proxy 推荐用这个,还可以用ebpf 提升性能,前提是你需要系统内核版本大于5.14 以上
内核升级的文章:https://www.cnblogs.com/centos-python/articles/14572519.html
https://www.cilium.io/
helm repo add cilium https://helm.cilium.io/
helm repo update
https://docs.cilium.io/en/stable/helm-reference/ 参数说明

生成需要的 etcd secret

kubectl create secret generic -n kube-system cilium-etcd-secrets \
--from-file=etcd-client-ca.crt=/etc/ssl/kubernetes/ca.pem \
--from-file=etcd-client.key=/etc/ssl/kubernetes/kubernetes-key.pem \
--from-file=etcd-client.crt=/etc/ssl/kubernetes/kubernetes.pem

安装命令:当前版本1.17  

之前的许多参数已经移除

https://docs.cilium.io/en/v1.15/operations/upgrade/#helm-options

 

安装参数:

helm install cilium ./ --namespace kube-system --set kubeProxyReplacement=true \
--set k8sServiceHost=k8s-apiserver-vip --set k8sServicePort=8443 --set etcd.enabled=true --set etcd.ssl=true \
--set "etcd.endpoints[0]=https://k8s-etcd-v1:2379" \
--set "etcd.endpoints[1]=https://k8s-etcd-v2:2379" \
--set "etcd.endpoints[2]=https://k8s-etcd-v3:2379" \
--set bandwidthManager.enabled=true \
--set bandwidthManager.bbr=true \
--set routingMode=native \
--set nativeRoutingCIDR=10.0.0.0/8 --set devices='{eno1,eno2}' \
--set hubble.ui.enabled=true --set hubble.relay.enabled=true \
--set hubble.ui.frontend.server.ipv6.enabled=false \
--set installNoConntrackIptablesRules=true \
--set autoDirectNodeRoutes=true \
--set ipv4NativeRoutingCIDR=10.0.0.0/8 --set bpf.masquerade=true --set localRedirectPolicy=true

重点说明一下

--set routingMode=native 直接路由模式,性能提升
--set devices='{eno1,eno2,eno3}'
--set devices='{bond+,eno+,ens+}'
如果不指定,会随机一个网卡去做bpf,到时主机节点只能访问这个网卡网段,为了实现主机不同网段的通信,需要加入所有可用的物理网卡名称
如果没有的网卡名称会报错

还有一点需要注意权限问题RBAC 权限问题

error: unable to upgrade connection: Forbidden (user=kubernetes, verb=create, resource=nodes, subresource=proxy)

```因此需要确保传递给 apiserver 的--kubelet-client-certificate 和--kubelet-client-key

这个证书的"CN": "kubernetes" 下面具有下面的权限属性:

```
verb=*, resource=nodes, subresource=proxy
verb=*, resource=nodes, subresource=stats
verb=*, resource=nodes, subresource=log
verb=*, resource=nodes, subresource=spec
verb=*, resource=nodes, subresource=metrics

系统已经存在一个system:kubelet-api-admin角色,该角色权限较高,在master客户端运行下面命令绑定角色权限即可:
kubectl create clusterrolebinding kubelet-admin --clusterrole=system:kubelet-api-admin --user=kubernetes(不推荐)

最好根据需要创建一个低权限的ClusterRole: 只能贴图了,复制上去格式有问题,这博客都不想用了,我们公司文档都是MD

授权 kube-apiserver 访问 kubelet
kubectl apply -f apiserver-to-kubelet-rbac.yaml
现在看,POD都启动正常

 kubectl exec -it -n kube-system cilium-6tl7m -- cilium status 可以看到支持直接路由和ebpf 这样性能会很高,比默认的隧道模式高很多

有兴趣的同学了解一下这个网络插件 

https://mp.weixin.qq.com/s/NrlxI5uMqQQ3sDrrPSKhZA

https://segmentfault.com/a/1190000040053231

https://mp.weixin.qq.com/s/StqzchIMRnzW0gA6TS73KQ

 

 

posted @ 2025-06-05 17:51  屌丝的IT  阅读(319)  评论(0)    收藏  举报