阿里云
少于1分钟
简要概述
本文主要介绍如何使用云服务器ECS 自建 K8S 集群,相比官方 ACK 产品有以下优势:
- 控制更加灵活。
- 没有机型限制,如 ENI 等。
如非特殊情况,线上业务均建议直接购买官方 ACK 产品。
注意:请确保安全组允许以下端口访问,如果其他请自行开通。
协议 | 端口 | 用途 |
---|---|---|
TCP | 6443 | kube-apiserver |
TCP | 10250 | metric-server |
云控制器
用于将你的集群连接到云提供商的 API 之上,可以同步路由、Service、Ingress 等创建对应云平台上资源。
通过分离 Kubernetes 和底层云基础设置之间的互操作性逻辑,cloud-controller-manager 组件使云提供商能够以不同于 Kubernetes 主项目的步调发布新特征:
集群网络模式
方案一:在 VPC 添加路由
假设以下配置:
节点名 | 归属 VPC | 归属交换机 | 宿主 IP | cluster_cidr | pod cidr |
---|---|---|---|---|---|
node1 | 10.0.0.0/8 | 10.100.197.0/24 | 10.100.197.203 | 192.168.201.0/24 | 192.168.201.0/28 |
node2 | 10.0.0.0/8 | 10.100.197.0/24 | 10.100.197.204 | 192.168.201.0/24 | 192.168.201.16/28 |
node3 | 10.0.0.0/8 | 10.100.197.0/24 | 10.100.197.205 | 192.168.201.0/24 | 192.168.201.32/28 |
node4 | 10.0.0.0/8 | 10.100.197.0/24 | 10.100.197.206 | 192.168.201.0/24 | 192.168.201.48/28 |
这样需要在 VPC 上添加路由:
192.168.201.0/28 via node1
192.168.201.16/28 via node2
192.168.201.32/28 via node3
192.168.201.48/28 via node4
在 VPC 上添加路由有以下两种方式:
方案二:独立 VPC 子网
既在阿里云上创建单独的 VPC 字网用于 POD 网段。
该方式依赖主机规格以及可支持的弹性网卡 ENI 数量限制,如需使用建议直接购买 ACK 产品。
方案三:使用封装形式
这种性能低,暂不考虑。
注意事项
组件 CCM 正常但污点未移除
根据 Kubernetes 运行云管理控制器 约定,当 kubelet 配置了 “–cloud-provider=external” 则在节点启动时会自动添加 “node.cloudprovider.kubernetes.io/uninitialized” 污点,当且仅当 CCM 组件运行成功后,会自动移除且设置节点可调度。
如果出现 CCM 组件正常,但各节点污点均未被移除,在排除权限等问题后,可检查配置 “–controllers” 是否有开启 “node” 控制器功能,否则即使 ccm 组件正常运行,节点的污点也是无法被组件移除的。
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: cloud-controller-manager
namespace: kube-system
spec:
template:
spec:
......
containers:
- command:
- /cloud-controller-manager
- --kubeconfig=/etc/kubernetes/cloud-controller-manager.conf
- --cloud-config=/etc/kubernetes/config/cloud-config.conf
# 支持 node,route,service,ingress
- --controllers=node,route
......
同时以下几个公知标签也不能被自动添加:
beta.kubernetes.io/instance-type
node.kubernetes.io/instance-type
failure-domain.beta.kubernetes.io/region
failure-domain.beta.kubernetes.io/zone
topology.kubernetes.io/zone
topology.kubernetes.io/region
最后修改 2024.05.06: docs: 独立常见问题处理 (96c4309)