前期准备

下载并安装docker

#安装必要依赖
sudo apt update
sudo apt install -y ca-certificates curl gnupg lsb-release
#添加 Docker 官方 GPG 密钥
sudo install -m 0755 -d /etc/apt/keyrings

curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
  | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

sudo chmod a+r /etc/apt/keyrings/docker.gpg
#添加 Docker 软件源
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
  https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" \
  | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
#更新 apt 索引并安装 Docker CE
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
#测试 Docker 是否安装成功
sudo docker run hello-world
#把当前用户加入 docker 组
sudo usermod -aG docker $USER
# 加入后退出并重新登录
# 重新登录后测试
docker ps -a

下载minikube并启动

curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube
minikube start --driver=docker

如果看到kubectl not found是正常的,因为kubectl内置在了minikube中,所有kubectl的命令都改为"minikube kubectl – xxxx"

部署Dashboard

如果曾经部署过但失败了建议先清理历史配置

kubectl delete -n kubernetes-dashboard deployment kubernetes-dashboard

使用官方配置文档

kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml

查看 Service

kubectl get svc -n kubernetes-dashboard

命令截图
运行

minikube kubectl -- proxy --address=0.0.0.0 --accept-hosts='.*'

在本地端SSH链接服务器

ssh -i key.pem -L 8001:127.0.0.1:8001 [username]@xx.xx.xx.xx

其中key.pem为创建服务器时保存在本地的密钥对,username为服务器端的用户名,@服务器公网ip地址

打开本地浏览器,输入网址

http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/

第一次进入时可能会遇到页面空白的情况,不用担心,页面在进行配置,过几分钟再试一次刷新就可以了
进入页面后会让你输入token

Token获取方法

在服务器端/ssh连接窗口
创建 admin-user

cat <<EOF | minikube kubectl -- apply -f -
apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin-user
  namespace: kubernetes-dashboard
EOF

再绑定 cluster-admin:

cat <<EOF | minikube kubectl -- apply -f -
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: admin-user
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: admin-user
  namespace: kubernetes-dashboard
EOF

获取 admin-user 的 Token

minikube kubectl -- -n kubernetes-dashboard create token admin-user

你会得到类似:eyJhbGciOiJSUzI1NiIsInR……(一大串)
把这个 token 粘贴到 Dashboard 登录框中即可登录。

更多推荐