尝试部署 Kubernetes 仪表盘 v2.0.0
概要-总结
为了在Mac上尝试使用Kubernetes,我尝试部署了kubernetes/dashboard的示例。
※控制台:您可以使用图表或表格来查看在k8s中管理的资源的状态,以及使用GUI操作来管理Pod和查看日志等。
确认所需之物
-
- Docker for Mac
Kubernetesのインストールとセットアップをすることができます。
kubectl
API経由でKubenetesを操作するためのクライアントツールです。
$ docker -v
Docker version 19.03.4, build 9013bf5
$ kubectl version --short --client
Client Version: v1.14.7
启用 Docker for Desktop 的 Kubernetes

选择右边的Kubernetes,勾选“显示系统容器”,然后点击“应用”。

启动确认和切换
我会从上下文列表中确认docker-for-desktop是否存在。
$ kubectl config get-contexts
CURRENT NAME CLUSTER AUTHINFO NAMESPACE
* docker-desktop docker-desktop docker-desktop
docker-for-desktop docker-desktop docker-desktop
将访问目标切换到docker-for-desktop。
$ kubectl config use-context docker-for-desktop
Switched to context "docker-for-desktop".
在启动阶段检查正在运行的pod。
$ kubectl get po --all-namespaces
NAMESPACE NAME READY STATUS RESTARTS AGE
docker compose-6c67d745f6-cv5zs 1/1 Running 0 65m
docker compose-api-57ff65b8c7-nl4dv 1/1 Running 0 65m
kube-system coredns-584795fc57-92qm4 1/1 Running 0 66m
kube-system coredns-584795fc57-nvkc9 1/1 Running 0 66m
kube-system etcd-docker-desktop 1/1 Running 0 65m
kube-system kube-apiserver-docker-desktop 1/1 Running 0 65m
kube-system kube-controller-manager-docker-desktop 1/1 Running 0 65m
kube-system kube-proxy-bkjgc 1/1 Running 0 66m
kube-system kube-scheduler-docker-desktop 1/1 Running 0 65m
部署 Kubernetes 仪表盘
由于环境已经准备好了,我们试着使用图形界面管理工具kubernetes dashboard来部署kubernetes集群。因为在GitHub上有源代码,所以按照README的指南进行操作。
创建Pod。
$ kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta8/aio/deploy/recommended.yaml
请确认已指定 Namespace 为 kubernetes-dashboard 并且正在运行。
※从 Kubernetes 2.0 系列开始,仪表板的 Namespace 已从 kube-system 迁移到 kubernetes-dashboard。
$ kubectl get deploy,po,svc -n kubernetes-dashboard
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.extensions/dashboard-metrics-scraper 1/1 1 1 27m
deployment.extensions/kubernetes-dashboard 1/1 1 1 27m
NAME READY STATUS RESTARTS AGE
pod/dashboard-metrics-scraper-69fcc6d9df-dglbd 1/1 Running 0 27m
pod/kubernetes-dashboard-6d75768647-d69sk 1/1 Running 0 27m
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/dashboard-metrics-scraper ClusterIP 10.100.193.116 <none> 8000/TCP 27m
service/kubernetes-dashboard ClusterIP 10.109.69.115 <none> 443/TCP 27m
$ kubectl proxy
Starting to serve on 127.0.0.1:8001

获取令牌的方式
从Kubernetes 1.8版本开始,引入了认证系统,如果不经过认证,将无法使用WebUI。
指定kubernetes-dashboard作为命名空间,并查找以kubernetes-dashboard-token-开头的secret。
$ kubectl -n kubernetes-dashboard get secret
NAME TYPE DATA AGE
default-token-d69sj kubernetes.io/service-account-token 3 32m
kubernetes-dashboard-certs Opaque 0 32m
kubernetes-dashboard-csrf Opaque 1 32m
kubernetes-dashboard-key-holder Opaque 2 32m
kubernetes-dashboard-token-lcnqw kubernetes.io/service-account-token 3 32m
为了使用默认令牌权限登录,获取令牌。
$ kubectl -n kubernetes-dashboard describe secret kubernetes-dashboard-token-lcnqw
Name: kubernetes-dashboard-token-lcnqw
Namespace: kubernetes-dashboard
Labels: <none>
Annotations: kubernetes.io/service-account.name: kubernetes-dashboard
kubernetes.io/service-account.uid: c2536c20-2541-11ea-88b0-025000000001
Type: kubernetes.io/service-account-token
Data
====
token: eyJhbGciO********************************************
~~~ 略 ~~~

我成功了?