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