跳到主要内容

公有云上部署 kubeasz

在公有云上使用kubeasz部署k8s集群需要注意以下几个常见问题。

安全组

注意虚机的安全组规则配置,一般集群内部节点之间端口全部放开即可;

网络组件

一般公有云对网络限制较多,跨节点 pod 通讯需要使用 OVERLAY 添加报头;默认配置详见example/config.yml

  • flannel 使用 vxlan 模式:FLANNEL_BACKEND: "vxlan"
  • calico 开启 ipinip:CALICO_IPV4POOL_IPIP: "Always"
  • kube-router 开启 ipinip:OVERLAY_TYPE: "full"

节点公网访问

可以在安装时每个节点绑定弹性公网地址(EIP),装完集群解绑;也可以开通NAT网关,或者利用iptables自建上网网关等方式

负载均衡

一般云厂商会限制使用keepalived+haproxy自建负载均衡,你可以根据云厂商文档使用云负载均衡(内网)四层TCP负载模式;

  • kubeasz 2x 版本已无需依赖外部负载均衡实现apiserver的高可用,详见 2x架构
  • kubeasz 1x 及以前版本需要负载均衡实现apiserver高可用,详见 1x架构

时间同步

一般云厂商提供的虚机都已默认安装时间同步服务,无需自行安装。

访问 APISERVER

在公有云上安装完集群后,需要在公网访问集群 apiserver,而我们在安装前可能没有规划公网IP或者公网域名;而 apiserver 肯定需要 https 方式访问,在证书创建时需要加入公网ip/域名;可以参考这里修改 APISERVER(MASTER)证书

在公有云上部署多主高可用集群

处理好以上讨论的常见问题后,在公有云上使用 kubeasz 安装集群与自有环境没有差异。

  • 使用 kubeasz 2x 版本安装单节点、单主多节点、多主多节点 k8s 集群,云上云下的预期安装体验完全一致