AWS 下 EKS 部署 Dashboard

时间:2022-12-19 12:05:27

一. 准备工作

打开 AWS CloudShell

AWS 下 EKS 部署 Dashboard

安装 eksctl

curl --silent --location "https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$(uname -s)_amd64.tar.gz" | tar xz -C /tmp
sudo mv /tmp/eksctl /usr/local/bin

安装 kubectl

curl -LO https://dl.k8s.io/release/v1.24.0/bin/linux/amd64/kubectl

创建演示集群

eksctl create cluster --name=cluster-1 --nodes=1 --version=1.23

安装 metric 服务器

kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml

二. 安装 Dashboard

下载部署文件

wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.5.1/aio/deploy/recommended.yaml

修改部署文件

使用 Nodeport 暴露访问端口,此处自定义为30003

AWS 下 EKS 部署 Dashboard

部署 Dashboard

kubectl apply -f recommended.yaml

为公网访问绑定 EIP

获取 dashboard 所在节点

[cloudshell-user@ip-10-2-85-153 ~]$ kubectl get pods -n kubernetes-dashboard -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
dashboard-metrics-scraper-799d786dbf-fdq6b 1/1 Running 0 77s 192.168.70.73 ip-192-168-74-45.ap-northeast-1.compute.internal <none> <none>
kubernetes-dashboard-fb8648fd9-bvh97 1/1 Running 0 78s 192.168.81.109 ip-192-168-74-45.ap-northeast-1.compute.internal <none> <none>

为 Dashboard 的 Pod 所在节点绑定一个弹性公网IP

AWS 下 EKS 部署 Dashboard

并在安全组中放开30003端口

AWS 下 EKS 部署 Dashboard


三. 创建服务账号

创建配置文件

此处在 kube-system 的名称空间下创建名为 eks-admin 的服务账号,并绑定集群管理员角色

cat >eks-admin-service-account.yaml <<EOF
apiVersion: v1
kind: ServiceAccount
metadata:

name: eks-admin

namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:

name: eks-admin
roleRef:

apiGroup: rbac.authorization.k8s.io

kind: ClusterRole

name: cluster-admin
subjects:
- kind: ServiceAccount

name: eks-admin

namespace: kube-system
EOF

创建服务账号

kubectl apply -f eks-admin-service-account.yaml

获取服务账号的 token

kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep eks-admin | awk '{print $1}’)

四. 访问 Dashboard

https://EIP:30003

填写上一步获取的 token 登录

AWS 下 EKS 部署 Dashboard