Kubernetes 集群性能优化
传统架构

可以在每个worker节点都配置各自的负载均衡服务,从而避免集中的负载均衡器的性能瓶颈

范例:配置每个节点的Proxy
#查看worker节点连接api server的地址信息为https://kubeapi.org:6443。因此实现基于此域名实现负载均衡
cat /etc/kubernetes/kubelet.conf
[root@node1 ~]# [root@node1 ~]# cat /etc/kubernetes/kubelet.conf apiVersion: v1 clusters: - cluster: certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURCVENDQWUyZ0F3SUJBZ0lJS0lCQitnTGhRYzR3RFFZSktvWklodmNOQVFFTEJRQXdGVEVUTUJFR0ExVUUKQXhNS2EzVmlaWEp1WlhSbGN6QWVGdzB5TmpBNE1ETXdOalEzTlRCYUZ3MHpOakEzTXpFd05qVXlOVEJhTUJVeApFekFSQmdOVkJBTVRDbXQxWW1WeWJtVjBaWE13Z2dFaU1BMEdDU3FHU0liM0RRRUJBUVVBQTRJQkR3QXdnZ0VLCkFvSUJBUUNyMTFCeml1aXB3cTgyMjJNZ1FHeVpVTFppenJ4NGpTaUp5bE5uTXZkRmtORkVKU2M5OUhiUlljVDkKK2Q1cXhiS0RGVEJqWTB0anV5VUNBTWZ6RHB6RU5DNE5hZ0ZpbGZrcVVJQk5CdGNYS1AyeXhvVVVuOG5UNXBGcAovK2dGSEhWcWVIVHkyY1RreTAwSGdZdDhvamZjU3Y4QXNEeS9pYS9yUlpYUlZLTFpTYkZLTE1KckN3YUw2V1pRCnlreGlMcy9DeWR5cEsvd1p6TmtDMmt5bUJHUFNQTktQdTFKdkcySGdEdmYvWXRLN2FrY3Q0WlJLSXh4TTgwaG8KMU1YR1RBUllTVnY4ZXFKa3VRVHFRWXNFMHZVc09JQUtCQzZjMkpyK0h3L3M2NmQ0eWdrek9obDZUa05QZXJ6Qwo5Nkw5aVhMRVlpNlR5NFlrZFMrNG5XSFFxSVhOQWdNQkFBR2pXVEJYTUE0R0ExVWREd0VCL3dRRUF3SUNwREFQCkJnTlZIUk1CQWY4RUJUQURBUUgvTUIwR0ExVWREZ1FXQkJRaWZ1VW5kaEMwUG5HQlJGUTY5b3Q3eWttOVpUQVYKQmdOVkhSRUVEakFNZ2dwcmRXSmxjbTVsZEdWek1BMEdDU3FHU0liM0RRRUJDd1VBQTRJQkFRQ1MxTHVHU1pQZgpoYVNCTjF2QzFTRE1DWDU2SUpMVGlXRDFtQkhjcXZsUlhBVnNjTnBMRWNxV2l2STdpL0RWYjUwQjYwNWd4dk9oCkdISFIxb3JSL21wOHJ3cER0SjVzclZyVFgvR2dVOXJlSnV5ZXdSa0pqTUlFUnNnVSthTlc2OXVTVEVNODFpZEMKZ25ZOXhsQXlnL2dVQ1VNOHFoWHFicGlRZGN6UWNYWEl0SVZwWkl4QWIxaU1KaGFTVjI5VTFwR1A4V2F6QlUvNgpQVFRlcGUwc3VFWHhyTTZRdDU0UFh6UVJvTkw2Vk0xRzlxbHBPdzZwa0ptVkx1M1FtbDE1OHdDWmFrNkFmNUdRCjVhWEttRWNxVkhmc1U3eCs0aCs4aUdIQXg4NFMyT05FWXBDRjNFVGxPK2VVQWhLelNvWGsvZUx2SnNDQXVBTEcKWElCZlJHTjd2WFRNCi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K server: https://kubeapi.org:6443 name: default-cluster contexts: - context: cluster: default-cluster namespace: default user: default-auth name: default-context current-context: default-context kind: Config users: - name: default-auth user: client-certificate: /var/lib/kubelet/pki/kubelet-client-current.pem client-key: /var/lib/kubelet/pki/kubelet-client-current.pem
#在每个worker节点修改API域名指定自已
[root@node1 ~]# cat /etc/hosts 127.0.0.1 localhost kubeapi.org kubeapi ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 #192.168.3.60 kubeapi.org kubeapi 192.168.3.60 master1.org master1 192.168.3.61 master2.org master2 192.168.3.62 master3.org master3 192.168.3.63 node1.org node1 192.168.3.64 node2.org node2 192.168.3.65 node3.org node3 192.168.3.66 ha1.org ha1 192.168.3.67 ha2.org ha2
#方法1:安装hapoxy实现负载均衡服务
dnf -y install haproxy
vi /etc/haproxy/haproxy.cfg
#在文件最后添加下面行
listen stats mode http bind 0.0.0.0:8888 stats enable log global stats uri /status stats auth admin:123456 listen k8s bind 127.0.0.1:6443 mode tcp server master1 master1.org:6443 check server master2 master2.org:6443 check server master3 master3.org:6443 check
[root@node1 haproxy]# cat /etc/haproxy/haproxy.cfg #--------------------------------------------------------------------- # Global settings #--------------------------------------------------------------------- global log 127.0.0.1 local2 chroot /var/lib/haproxy pidfile /var/run/haproxy.pid maxconn 4000 user haproxy group haproxy daemon stats socket /var/lib/haproxy/stats ssl-default-bind-ciphers PROFILE=SYSTEM ssl-default-server-ciphers PROFILE=SYSTEM #--------------------------------------------------------------------- # Defaults #--------------------------------------------------------------------- defaults mode http log global option httplog option dontlognull option http-server-close option forwardfor except 127.0.0.0/8 option redispatch retries 3 timeout http-request 10s timeout queue 1m timeout connect 10s timeout client 1m timeout server 1m timeout http-keep-alive 10s timeout check 10s maxconn 3000 #--------------------------------------------------------------------- # Frontend #--------------------------------------------------------------------- frontend main bind *:5000 acl url_static path_beg -i /static /images /javascript /stylesheets acl url_static path_end -i .jpg .gif .png .css .js use_backend static if url_static default_backend app #--------------------------------------------------------------------- # Backend static #--------------------------------------------------------------------- backend static balance roundrobin server static 127.0.0.1:4331 check #--------------------------------------------------------------------- # Backend app #--------------------------------------------------------------------- backend app balance roundrobin server app1 127.0.0.1:5001 check server app2 127.0.0.1:5002 check server app3 127.0.0.1:5003 check server app4 127.0.0.1:5004 check #--------------------------------------------------------------------- # Stats page #--------------------------------------------------------------------- listen stats mode http bind 0.0.0.0:8888 stats enable log global stats uri /status stats auth admin:123456 #--------------------------------------------------------------------- # K8s API Server #--------------------------------------------------------------------- listen k8s bind 127.0.0.1:6443 mode tcp server master1 master1.org:6443 check server master2 master2.org:6443 check server master3 master3.org:6443 check
systemctl restart haproxy
systemctl status haproxy
systemctl enable haproxy
haproxy -c -f /etc/haproxy/haproxy.cfg
浏览器访问: http://192.168.3.63:8888/status ,可以看到下面界面
scp /etc/haproxy/haproxy.cfg 192.168.3.64:/etc/haproxy/haproxy.cfg
scp /etc/haproxy/haproxy.cfg 192.168.3.65:/etc/haproxy/haproxy.cfg
systemctl restart haproxy
systemctl status haproxy
systemctl enable haproxy
haproxy -c -f /etc/haproxy/haproxy.cfg
浏览器访问: http://192.168.3.64:8888/status ,可以看到下面界面
浏览器访问: http://192.168.3.65:8888/status ,可以看到下面界面
#创建Pod测试正常
kubectl create deployment myapp --image registry.cn-beijing.aliyuncs.com/wangxiaochun/pod-test:v0.1 --replicas 3
kubectl get pod -o wide
[root@master1 ~]# kubectl get pod -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES myapp-55d868944-bgqbb 1/1 Running 0 25s 10.244.2.6 node2.org <none> <none> myapp-55d868944-g4xw2 1/1 Running 0 25s 10.244.1.6 node1.org <none> <none> myapp-55d868944-w8qkx 1/1 Running 0 25s 10.244.3.4 node3.org <none> <none>
浙公网安备 33010602011771号