在公有云上使用kubeasz
部署k8s
集群需要注意以下几个常见问题。
注意虚机的安全组规则配置,一般集群内部节点之间端口放开即可;
一般公有云对网络限制较多,跨节点 pod 通讯需要使用 OVERLAY 添加报头;比如可以使用如下:(kubeasz 项目中已默认配置)
- flannel 使用 vxlan 模式:
roles/flannel/defaults/main.yml
- calico 开启 ipinip:
roles/calico/defaults/main.yml
- kube-router 开启 ipinip:
roles/kube-router/defaults/main.yml
可以在安装时每个节点绑定弹性公网地址
(EIP),装完集群解绑;也可以开通NAT网关,或者利用iptables自建上网网关等方式
一般云厂商会限制使用keepalived+haproxy
自建负载均衡,你可以根据云厂商文档使用云负载均衡(内网)四层TCP负载模式;
一般云厂商提供的虚机都已默认安装时间同步服务,无需自行安装。
在公有云上安装完集群后,需要在公网访问集群 apiserver,而我们在安装前可能没有规划公网IP或者公网域名;而 apiserver 肯定需要 https 方式访问,在证书创建时需要加入公网ip/域名;可以参考这里修改 APISERVER(MASTER)证书
处理好以上讨论的常见问题后,在公有云上使用 kubeasz 安装集群与自有环境没有差异。
- 使用 kubeasz 2x 版本安装单节点、单主多节点、多主多节点 k8s 集群,云上云下的预期安装体验完全一致