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

    Cauchy @hongming

    部署完成后需执行如下两条命令规避兼容性问题,详情可参考:https://kubesphere.com.cn/forum/d/2217-account-is-not-active

    这个问题虽然有 workaround 但是感觉不是很合理,影响初次安装的体验,EKS-D 的兼容性问题是否可以在下个版本尽快修复?

      默认ubuntu系统带snap指令,如果是centos,可以参考如下指令安装:

      sudo yum install epel-release
      sudo yum install snapd
      sudo systemctl enable --now snapd.socket
      sudo ln -s /var/lib/snapd/snap /snap