EKS-D
EKS-D 是AWS 开源的 Kubernetes 发行版,与很多 kubernetes 安装工具类似,其集成了 kubernetes 集群所需的核心组件以及网络、存储、容器运行时等服务,从而支持一键部署可用 kubernetes 集群。
如需了解更多,可查看:
https://aws.amazon.com/cn/eks/eks-distro
https://aws.amazon.com/cn/blogs/opensource/introducing-amazon-eks-distro
https://github.com/aws/eks-distro
KubeSphere 纳管 EKS-D 集群
由于 EKS-D 还未在 github 上发布正式版本,但 snap 已提供了 EKS-D 的安装,当然也可以自行build。本文使用ubuntu18.04部署集群。
1.使用 EKS-D 启动 kubernetes 集群
# 安装 eks
sudo snap install eks --classic --edge
# 启动 EKS-D 集群
eks start # 若报无法找到 eks 命令,可将 /snap/bin 加入环境变量 export PATH=$PATH:/snap/bin
# 为 kubectl 设置别名(alias)
alias kubectl='eks kubectl'
# 查看集群节点状态
kubectl get node -o wide
# NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
# i-02emag0c Ready <none> 169m v1.18.9-eks-1-18-1 192.168.6.3 <none> Ubuntu 18.04.5 LTS 4.15.0-121-generic containerd://1.3.7
2.部署 KubeSphere 管理 EKS-D 集群
注意:以下为 latest 版本,部署 KubeSphere v3.0.0 方法见文章末尾。
# 部署 KubeSphere
kubectl apply -f https://raw.githubusercontent.com/kubesphere/ks-installer/master/deploy/kubesphere-installer.yaml
kubectl apply -f https://raw.githubusercontent.com/kubesphere/ks-installer/master/deploy/cluster-configuration.yaml
# 查看部署日志
kubectl logs -n kubesphere-system $(kubectl get pod -n kubesphere-system -l app=ks-install -o jsonpath='{.items[0].metadata.name}') -f
3.登录 KubeSphere 管理集群
附:部署 KubeSphere v3.0.0 管理 EKS-D
注意:若已部署 KubeSphere ,请勿重复部署。
# 部署 KubeSphere v3.0.0
kubectl apply -f https://github.com/kubesphere/ks-installer/releases/download/v3.0.0/kubesphere-installer.yaml
kubectl apply -f https://github.com/kubesphere/ks-installer/releases/download/v3.0.0/cluster-configuration.yaml
# 查看部署日志
kubectl logs -n kubesphere-system $(kubectl get pod -n kubesphere-system -l app=ks-install -o jsonpath='{.items[0].metadata.name}') -f
# 部署完成后需执行如下两条命令规避兼容性问题,详情可参考:https://kubesphere.com.cn/forum/d/2217-account-is-not-active
kubectl apply -f https://raw.githubusercontent.com/kubesphere/ks-installer/2c4b479ec65110f7910f913734b3d069409d72a8/roles/ks-core/prepare/files/ks-init/users.iam.kubesphere.io.yaml
kubectl apply -f https://raw.githubusercontent.com/kubesphere/ks-installer/2c4b479ec65110f7910f913734b3d069409d72a8/roles/ks-core/prepare/files/ks-init/webhook-secret.yaml
kubectl -n kubesphere-system rollout restart deploy ks-controller-manager