1、创建证书签名请求:
在/opt/k8s/work目录下创建一个名为kube-proxy-csr.json的文件,内容如下:

(图片来源网络,侵删)
{
"CN": "system:kube-proxy",
"key": {
"algo": "rsa",
"size": 2048
},
"names": [
{
"C": "CN",
"ST": "BeiJing",
"L": "BeiJing",
"O": "k8s",
"OU": "4Paradigm"
}
]
} 使用cfssl gencert命令生成证书和私钥:
cfssl gencert -ca=/opt/k8s/work/ca.pem
-ca-key=/opt/k8s/work/ca-key.pem
-config=/opt/k8s/work/ca-config.json
-profile=kubernetes kube-proxy-csr.json | cfssljson -bare kube-proxy 检查生成的文件:
ls kube-proxy 2、创建和分发 kubeconfig 文件:
设置集群信息:
kubectl config set-cluster kubernetes
--certificate-authority=/opt/k8s/work/ca.pem
--embed-certs=true
--server=${KUBE_APISERVER}
--kubeconfig=kube-proxy.kubeconfig 设置客户端认证信息:

(图片来源网络,侵删)
kubectl config set-credentials kube-proxy
--client-certificate=kube-proxy.pem
--client-key=kube-proxy-key.pem
--embed-certs=true
--kubeconfig=kube-proxy.kubeconfig 设置上下文并切换到默认上下文:
kubectl config set-context default
--cluster=kubernetes
--user=kube-proxy
--kubeconfig=kube-proxy.kubeconfig
kubectl config use-context default --kubeconfig=kube-proxy.kubeconfig 分发配置文件到所有节点:
for node_name in ${NODE_NAMES[@]}; do
echo ">>> ${node_name}"
scp kube-proxy.kubeconfig root@${node_name}:/etc/kubernetes/
done 3、创建 kube-proxy 配置文件:
创建一个模板文件kube-proxy-config.yaml.template如下:
kind: KubeProxyConfiguration
apiVersion: kubeproxy.config.k8s.io/v1alpha1
clientConnection:
burst: 200
kubeconfig: "/etc/kubernetes/kube-proxy.kubeconfig"
qps: 100
bindAddress:NODE_IP
healthzBindAddress:NODE_IP:10256
metricsBindAddress:NODE_IP:10249
enableProfiling: true
clusterCIDR: ${CLUSTER_CIDR}
hostnameOverride:NODE_NAME
mode: "ipvs"
portRange: ""
kubeProxyIPTablesConfiguration:
masqueradeAll: false
kubeProxyIPVSConfiguration:
scheduler: rr
excludeCIDRs: [] 4、分发和创建 kube-proxy 配置文件:

(图片来源网络,侵删)
将配置文件模板复制到各节点并替换占位符:
source /opt/k8s/bin/environment.sh
for node_name in ${NODE_NAMES[@]}; do
echo ">>> ${node_name}"
scp kube-proxy-config.yaml.template root@${node_name}:/etc/kubernetes/pki/
ssh root@${node_name} "sed -i 's|NODE_IP|${node_ip}|g' /etc/kubernetes/pki/kube-proxy-config.yaml.template && mv /etc/kubernetes/pki/kube-proxy-config.yaml.template /etc/kubernetes/pki/kube-proxy-config.yaml"
done 5、创建和分发 kube-proxy systemd unit 文件:
在/etc/systemd/system目录下创建kube-proxy.service如下:
[Unit]
Description=Kubernetes KubeProxy
After=network.target
[Service]
ExecStart=/usr/local/bin/kube-proxy
--logtostderr=true
--v=2
--config=/etc/kubernetes/pki/kube-proxy-config.yaml
Restart=on-failure
RestartSec=5s
[Install]
WantedBy=multi-user.target 重新加载 systemd 管理的服务:
systemctl daemon-reload 启动 kube-proxy 服务并设置为开机自启:
systemctl start kube-proxy
systemctl enable kube-proxy 6、检查启动结果:
查看 kube-proxy 服务状态:
systemctl status kube-proxy 查看 IPVS 路由规则:
ipvsadm -lnc 通过以上步骤,您可以成功配置和启动 kube-proxy,如果遇到任何问题,请参考相关日志和文档进行排查。
小伙伴们,上文介绍proxy server_kube-proxy配置的内容,你了解清楚吗?希望对你有所帮助,任何问题可以给我留言,让我们下期再见吧。
本文来源于互联网,如若侵权,请联系管理员删除,本文链接:https://www.9969.net/83789.html