在使用Kubernetes(K8S)管理容器化应用时,很多开发者会选择使用Web界面来更直观地查看和管理集群。在虚拟机(VM)中搭建K8S界面可以让我们更方便地进行操作。接下来我将为你详细介绍如何在虚拟机中搭建K8S界面。

整个过程可以分为以下几个步骤:

| 步骤 | 操作 |
| ---- | ------------------------- |
| 1 | 安装Docker |
| 2 | 安装Kubernetes |
| 3 | 部署Kubernetes Dashboard |

### 步骤一:安装Docker

Docker是K8S的基础,我们首先需要安装Docker。

首先更新apt软件包索引:
```bash
sudo apt-get update
```

安装依赖软件包以允许apt通过HTTPS使用存储库:
```bash
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
```

添加Docker的官方GPG密钥:
```bash
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
```

设置Docker稳定存储库:
```bash
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
```

安装Docker:
```bash
sudo apt-get update
sudo apt-get install docker-ce
```

### 步骤二:安装Kubernetes

安装Kubernetes需要设置Kubernetes的软件仓库,并安装所需要的软件。

首先添加Kubernetes的软件仓库:
```bash
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
```

添加Kubernetes的软件仓库:
```bash
sudo apt-add-repository "deb http://apt.kubernetes.io/ kubernetes-xenial main"
```

更新apt软件包索引:
```bash
sudo apt-get update
```

安装Kubernetes:
```bash
sudo apt-get install -y kubeadm kubelet kubectl
```

### 步骤三:部署Kubernetes Dashboard

Kubernetes Dashboard是一个Web界面,可以帮助我们管理K8S集群。

首先使用以下命令创建Dashboard所需的配置:
```bash
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0/aio/deploy/recommended.yaml
```

创建一个Service Account:
```bash
kubectl create serviceaccount dashboard -n default
```

为Service Account赋予权限:
```bash
kubectl create clusterrolebinding dashboard-admin -n default --clusterrole=cluster-admin --serviceaccount=default:dashboard
```

获取Token:
```bash
kubectl describe secret $(kubectl get secret -n default | grep dashboard | awk '{print $1}') -n default
```

最后,使用以下命令启动Dashboard:
```bash
kubectl proxy
```

通过访问 http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/ 可以进入Dashboard界面进行管理操作。

通过以上步骤,你已经成功在虚拟机中搭建起了Kubernetes的Web界面。希望这篇文章对你有所帮助,也希望你能够在K8S的学习和应用中取得更多进步!