因为在公有云上虚拟机IP是出问题的 我现在采用的是每个节点上部署nginx,通过代理的方式来完成集群的高可用。我贴下我的配置
user root;
worker_processes auto;
worker_cpu_affinity auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
worker_rlimit_nofile 102400;
events{
use epoll;
multi_accept on;
worker_connections 102400;
}
stream {
upstream kube-apiservers {
server master01:6443 weight=5 max_fails=3 fail_timeout=15s;
server master02:6443 weight=5 max_fails=3 fail_timeout=15s;
server master03:6443 weight=5 max_fails=3 fail_timeout=15s;
}
server {
listen 8443 backlog=8192;
proxy_timeout 15s;
proxy_pass kube-apiservers;
proxy_connect_timeout 15s;
proxy_buffer_size 16k;
}
}
虚拟vip在公有云有问题要解决吧,这个方案是最好的也是官方推荐的:
目前官方推荐的有2种:
方案一:
方案二(推荐,BGP模式,三层):
详情参考:Kubernetes高可用性的考虑
ps:这个文章中的kube-vip方案对应k8s的版本老了,创建kube-vip的代码不是最新的,我这周末会更新它,你先看官方的kube-vip文档吧,地址:https://github.com/kubernetes/kubeadm/blob/main/docs/ha-considerations.md#options-for-software-load-balancing