在上篇文章中在MacOS上通过Docker Desktop记录了安装Kubernetes的方法,这篇文章继续记录一下设定Dashboard的方式,这样Mac上的基础开发或者实验环境就基本就绪了。
事前准备
- 操作系统
liumiaocn:~ liumiao$ sw_vers
ProductName: Mac OS X
ProductVersion: 10.15.6
BuildVersion: 19G73
liumiaocn:~ liumiao$
-
Docker Desktop
使用方式可参看:https://blog.csdn.net/liumiaocn/article/details/80780337 -
Kubernetes
-
确认版本信息
liumiaocn:~ liumiao$ which kubectl
/usr/local/bin/kubectl
liumiaocn:~ liumiao$ kubectl version --short
Client Version: v1.18.8
Server Version: v1.18.8
liumiaocn:~ liumiao$
- 确认结点信息
liumiaocn:~ liumiao$ kubectl get nodes -o wide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
docker-desktop Ready master 4m50s v1.18.8 192.168.65.3 <none> Docker Desktop 4.19.76-linuxkit docker://19.3.13
liumiaocn:~ liumiao$
- 确认集群状态信息
liumiaocn:~ liumiao$ kubectl cluster-info
Kubernetes master is running at https://kubernetes.docker.internal:6443
KubeDNS is running at https://kubernetes.docker.internal:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
liumiaocn:~ liumiao$
下载yaml
执行命令:wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.4/aio/deploy/recommended.yaml
修改yaml
liumiaocn:dashboard liumiao$ diff recommended.yaml*
43d42
< nodePort: 30443
46d44
< type: NodePort
200d197
< - --token-ttl=86400
liumiaocn:dashboard liumiao$
可以看到只添加了三行,主要是nodePort和token过期时间的设定(注意端口30443的区间取值限制为30000-32767)。详细可参看文末的yaml。在网络畅通的情况下直接执行此yaml即可,不然就想办法分别下载镜像和yaml文件,然后再使用kubectl apply即可。此文件中包含了Dashboard所需要的namespace、service等诸多信息,所以直接apply即可完成。所使用到的镜像如下:
- kubernetesui/dashboard:v2.0.4
- kubernetesui/metrics-scraper:v1.0.4
事前进行docker pull之后,安装会非常快
liumiaocn:dashboard liumiao$ kubectl apply -f recommended.yaml
namespace/kubernetes-dashboard created
serviceaccount/kubernetes-dashboard created
service/kubernetes-dashboard created
secret/kubernetes-dashboard-certs created
secret/kubernetes-dashboard-csrf created
secret/kubernetes-dashboard-key-holder created
configmap/kubernetes-dashboard-settings created
role.rbac.authorization.k8s.io/kubernetes-dashboard created
clusterrole.rbac.authorization.k8s.io/kubernetes-dashboard created
rolebinding.rbac.authorization.k8s.io/kubernetes-dashboard created
clusterrolebinding.rbac.authorization.k8s.io/kubernetes-dashboard created
deployment.apps/kubernetes-dashboard created
service/dashboard-metrics-scraper created
deployment.apps/dashboard-metrics-scraper created
liumiaocn:dashboard liumiao$
安装确认
通过如下命令,可以确认到Dashboard已经正常运行
liumiaocn:dashboard liumiao$ kubectl get pods --namespace kubernetes-dashboard
NAME READY STATUS RESTARTS AGE
dashboard-metrics-scraper-6b4884c9d5-5glgp 1/1 Running 0 2m43s
kubernetes-dashboard-76b754fc78-p4ncz 1/1 Running 0 2m43s
liumiaocn:dashboard liumiao$
登录确认
使用如下URL即可进行登录确认
URL:https://localhost:30443
获取token
执行命令:kubectl describe secret -n kubernetes-dashboard $(kubectl get secrets -n kubernetes-dashboard |grep dashboard |awk ‘{print $1}’ |grep token) |grep token: |awk -F: ‘{print $2}’
liumiaocn:dashboard liumiao$ kubectl describe secret -n kubernetes-dashboard $(kubectl get secrets -n kubernetes-dashboard |grep dashboard |awk '{print $1}' |grep token) |grep token: |awk -F: '{print $2}'
eyJhbGciOiJSUzI1NiIsImtpZCI6ImFkaHVsR2cyNGZOSG1FRmxmYTVyd0hmbHlmMjV5UnQ1MjJHS2Z5dzhudGMifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJrdWJlcm5ldGVzLWRhc2hib2FyZC10b2tlbi1uNXB3ZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50Lm5hbWUiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6ImNkMGUwY2ZlLTY4N2MtNDczMi1iZjk2LTA5NGJlOTkyMjg2MiIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDprdWJlcm5ldGVzLWRhc2hib2FyZDprdWJlcm5ldGVzLWRhc2hib2FyZCJ9.RMz69kFq-cX7JS5B8sBdmjrGAXqXQ6Q1ZMzlSVOoIVfWhdDs2QH4gw1NTVjXrzHf2teLasyQsdNnXJmbz6MVCNUUH2b-_mjECQMowf1egjFqH64Uw49C8f0KMIBUnX-bchLu5sGLoygP_WV1dT5uiHLI8i2x8zeoARRLrF6HBM9MQ-kvGVRy3bbNz26nfmtqICLRzveeg4eG3iPUNhc_RuWPEdNYODEWZphnSO0EkD4iClkoiYsLxix3bZspxv1PEkAHfEH6mL6cwVsHTi5i1ZcbZmsbbkQxHWutHU0cjbBLWKcfna5HqyAxPJGmmMeB09CRfZbE13Aro6pWsPD-iA
liumiaocn:dashboard liumiao$
登录确认
使用上述获得的token进行登录即可看到dashboar页面了
内容总结
这篇文章整理了Mac下设定Dashboard的方式,实际上和其他OS上并无不同。
Dashboard的yaml文件
# Copyright 2017 The Kubernetes Authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
apiVersion: v1
kind: Namespace
metadata:
name: kubernetes-dashboard
---
apiVersion: v1
kind: ServiceAccount
metadata:
labels:
k8s-app: kubernetes-dashboard
name: kubernetes-dashboard
namespace: kubernetes-