Rancher Server 设置
- Rancher 版本:V2.8.1
- 安装选项 (Docker install/Helm Chart):
下游集群信息
用户信息
- 登录用户的角色是什么? (管理员/集群所有者/集群成员/项目所有者/项目成员/自定义):管理员
**主机操作系统:
CentOS Linux release 7.9.2009 (Core)
uname -a
Linux host50 5.4.266-1.el7.elrepo.x86_64
1、集群yaml文件内无法更改kube-proxy 改mode = ipvs 保存再次编辑配置还在,但下游node 未生效
2、node yaml文件内无法增加system-reserved、kube-reserved 保证自动还原配置了,我感觉我的配置加错了。
rancher_kubernetes_engine_config:
services:
kubelet:
extra_args:
system-reserved: “cpu=500m,memory=1Gi,ephemeral-storage=1Gi”
kube-reserved: “cpu=1,memory=1Gi,ephemeral-storage=1Gi”
**预期结果:
1、所有节点kube-proxy mode = ipvs
2、每个节点可自定义 system-reserved、 kube-reserved的值。
ksd
2
采用和你一样的操作步骤修改为 ipvs:
machineGlobalConfig:
cni: calico
disable-kube-proxy: false
etcd-expose-metrics: false
kube-proxy-arg:
- proxy-mode=ipvs
- ipvs-strict-arp=true
操作是成功的,根据上面的修改,保存集群,下游集群的 rke2 会有对应的重启更新日志:
Mar 19 06:48:47 ip-172-31-12-185 rke2[14018]: time="2024-03-19T06:48:47Z" level=info msg="Running kube-proxy --cluster-cidr=10.42.0.0/16 --conntrack-max-per-core=0 --conntrack-tcp-timeout-close-wait=0s --conntrack-tcp-timeout-established=0s --healthz-bind-address=127.0.0.1 --hostname-override=ip-172-31-12-185 --ipvs-strict-arp=true --kubeconfig=/var/lib/rancher/rke2/agent/kubeproxy.kubeconfig --proxy-mode=ipvs"
查看下游集群的 kube-proxy 进程,也有 ipvs 的参数:
root@ip-172-31-12-185:/etc/rancher/rke2# ps -ef | grep kube-proxy
root 15323 15269 0 06:49 ? 00:00:00 kube-proxy --cluster-cidr=10.42.0.0/16 --conntrack-max-per-core=0 --conntrack-tcp-timeout-close-wait=0s --conntrack-tcp-timeout-established=0s --healthz-bind-address=127.0.0.1 --hostname-override=ip-172-31-12-185 --ipvs-strict-arp=true --kubeconfig=/var/lib/rancher/rke2/agent/kubeproxy.kubeconfig --proxy-mode=ipvs
root 16123 1355 0 06:49 pts/1 00:00:00 grep --color=auto kube-proxy
保存集群 yaml 之后,rke2 会更新配置,从rke2 更新后的配置中也可以看到,ipvs 配置成功:
root@ip-172-31-12-185:~# cat /etc/rancher/rke2/config.yaml.d/50-rancher.yaml | grep -A 3 "kube-proxy-arg"
"kube-proxy-arg": [
"proxy-mode=ipvs",
"ipvs-strict-arp=true"
],
1 个赞
下游已成功切换成IPVS,谢谢
请教第二个问题 system-reserved、kube-reserved的预留,我查看了很多资料
https://github.com/rancher/rke/issues/1184参考
extra_args:
#to fix resource exhaustion
enforce-node-allocatable: “pods,system-reserved,kube-reserved”
system-reserved: “cpu=500m,memory=1Gi,ephemeral-storage=1Gi”
kube-reserved: “cpu=1,memory=1Gi,ephemeral-storage=1Gi”
eviction-hard: “memory.available<500Mi,nodefs.available<10%”
system-reserved-cgroup: “/kubesystem”
kube-reserved-cgroup: “/kubelet”
这个参数不知道增加在哪个位置
rancher_kubernetes_engine_config:
services:
kubelet:
extra_args:
system-reserved: “cpu=500m,memory=1Gi,ephemeral-storage=1Gi”
kube-reserved: “cpu=1,memory=1Gi,ephemeral-storage=1Gi”
是我们位置 不对吗?
ksd
4
你创建的是 rke2 集群,那你参考 rke 集群也没用啊
ksd
5
我参考了您提供的连接,进行了部份配置,,,还有部份不支持,,不支持的部份在哪里去配置下游的 kubelete ??
支持部份
下游节点已同步
不支持部分
kubernetes官方提示kubernetes v1.27 的 Kubelet 部份配置已弃用, 应在 --config
所给的配置文件中进行设置。
我参考了kubernetes官方 Kubelet 请参阅 kubelet-config-file,格式发生了变化,不再是启动时加参数的格式。
这种配置方式RancherV2.8 版本是在哪里配置??
ksd
7
你上面发的文档说可以通过 --config 来执行配置文件参数,而且你最后的图片说了如何在这个文件中配置你需要的参数的格式。
所以在 rancher 中,你可以参考你配置成功的参数的位置,加上 --config=/PATH/xxx.yaml。然后在对应节点上创建 xxx.yaml ,xxx.yaml 的内容就按照 K8s 官方的格式,应该就行了。
其实,你在 rancher 上所有的配置,都会落实到下游集群的 rke2 中,所以,你可以直接在下游 rke2 集群的对应主机上新增 yyy.yaml 的配置,然后覆盖或者附加配置都可以,可参考:kubelet-arg does not accept evictionHard settings · Issue #4200 · rancher/rke2 · GitHub
rke2v1.7配置kubelete都启不来
第一种方式
第二种方式
系统cgroup 手动创建 了
cgroup for kube-reserved
mkdir -p /sys/fs/cgroup/cpu/kubelet
mkdir -p /sys/fs/cgroup/cpuacct/kubelet
mkdir -p /sys/fs/cgroup/cpuset/kubelet
mkdir -p /sys/fs/cgroup/memory/kubelet
mkdir -p /sys/fs/cgroup/systemd/kubelet
mkdir -p /sys/fs/cgroup/hugetlb/kubelet
cgroup for system-reserved
mkdir -p /sys/fs/cgroup/cpu/kubesystem
mkdir -p /sys/fs/cgroup/cpuacct/kubesystem
mkdir -p /sys/fs/cgroup/cpuset/kubesystem
mkdir -p /sys/fs/cgroup/memory/kubesystem
mkdir -p /sys/fs/cgroup/systemd/kubesystem
mkdir -p /sys/fs/cgroup/hugetlb/kubesystem
当我单独按下图配置这两条时,kubelet 无法启动
下图为kubernets 官方配置要求
我再按官方的这个配置时,kubelet能正常启动,node节点不生效
/etc/rancher/rke2/config.yaml.d/kube-config.yaml
加以下参数,在node里实现预留系统资源,和kubeu资源
systemReserved: “cpu=1,memory=1Gi,ephemeral-storage=1Gi”
kubeReserved: “cpu=1,memory=1Gi,ephemeral-storage=1Gi”
ksd
11
- 在要调整 system-reserved 和 kube-reserved 的节点主机上新建文件,例如:
root@ip-172-31-8-122:~# cat /opt/kubelet.yaml
apiVersion: kubelet.config.k8s.io/v1beta1
kind: KubeletConfiguration
kubeReserved:
cpu: "200m"
memory: "500Mi"
systemReserved:
cpu: "200m"
memory: "500Mi"
-
在 Rancher UI 上操作创建 rke2 自定义集群,选择 “Advanced” 选项,设置 Kubelet Args,如下:
-
使用生成的命令注册节点:
-
集群创建成功
从添加集群日志可以看到已经加载了 --config 参数:
谢谢可以了,造成的问题因该是rke2,不能安K8S官方的配置方式配置,