背景
最近升级k8s集群时遇到这个问题,集群是使用kuberadm自动化脚本安装的,之前一直认为kubeadm安装的集群这些组件除了kubelet都是静态pod跑起来的。
其实kube-proxy并不是.
kube-proxy是如何安装的
在使用kubeadmin安装Kubernetes集群时,kube-proxy是通过kubeadmin配置文件中的kubeadmConfigPatches字段来安装的。kubeadmConfigPatches字段是一个YAML格式的配置文件,用于指定在使用kubeadm初始化集群时要应用补丁。
kube-proxy的安装过程可以通过在kubeadmConfigPatches字段中添加以下内容来实现:
Copy
apiVersion: kubeadm.k8s.io/v1beta2
kind: KubeProxyConfiguration
metadata:
name: config
mode: “iptables” # 或者 “ip”
其中,mode字段指定了kube-proxy的模式,可以选择使用iptables或者ipvs模式。在Kubernetes 1.19及以后的版本中,ipvs模式已经成为了默认的模式。
在admin安装集群时,可以通过修改kubeadmConfigPatches字段来自定义kube-proxy的配置。
例如,可以通过添加其他的KubeProxyConfiguration字段来配置kube-proxy的其他参数,或者通过添加其他的kubeadmConfigPatches字段来修改其他组件的配置。
在使用kubeadm安装的集群的时候执行kubeadm:init的时候有这么一段配置
apiVersion: kubeproxy.config.k8s.io/v1alpha1
kind: KubeProxyConfiguration
mode: ipvs
ipvs:
minSyncPeriod: 5s
syncPeriod: 5s
# ipvs 负载策略
scheduler: 'wrr'