随笔- 501  评论- 394  文章- 4 

Kubernetes(k8s)中dashboard的部署。

1、k8s的dashboard的安装部署,首先需要将压缩包下载下来,然后进行解压缩操作。

 1 [root@k8s-master ~]# cd k8s/
 2 [root@k8s-master k8s]# ls
 3 book-master.war  deploy  health  pod  rc  skydns  skydns.zip  svc  tomcat_demo  tomcat_demo.zip
 4 [root@k8s-master k8s]# wget https://www.qstack.com.cn/dashboard.zip
 5 --2020-06-18 20:02:26--  https://www.qstack.com.cn/dashboard.zip
 6 Resolving www.qstack.com.cn (www.qstack.com.cn)... 123.125.46.149, 111.202.85.37
 7 Connecting to www.qstack.com.cn (www.qstack.com.cn)|123.125.46.149|:443... connected.
 8 HTTP request sent, awaiting response... 200 OK
 9 Length: 1099 (1.1K) [application/zip]
10 Saving to: ‘dashboard.zip’
11 
12 100%[=======================================================================================================================================================================>] 1,099       --.-K/s   in 0.05s   
13 
14 2020-06-18 20:02:26 (20.2 KB/s) - ‘dashboard.zip’ saved [1099/1099]
15 
16 [root@k8s-master k8s]# unzip dashboard.zip
17 Archive:  dashboard.zip
18    creating: dashboard/
19   inflating: dashboard/dashboard-deploy.yaml  
20   inflating: dashboard/dashboard-svc.yaml  
21 [root@k8s-master k8s]# 

查看配置文件dashboard-deploy.yaml,并对配置进行修改。

1 [root@k8s-master dashboard]# vim dashboard-deploy.yaml

首先,需要将kubernetes-dashboard-amd64下载下来,然后上传到私有仓库里面,方便使用。

 1 [root@k8s-master ~]# docker pull registry.cn-qingdao.aliyuncs.com/wangxiaoke/kubernetes-dashboard-amd64:v1.10.0
 2 Trying to pull repository registry.cn-qingdao.aliyuncs.com/wangxiaoke/kubernetes-dashboard-amd64 ... 
 3 sha256:7755c0e7cb7e2585d21712f90e3d86d71cbc6362ab8fe283dae84cedc9c13396: Pulling from registry.cn-qingdao.aliyuncs.com/wangxiaoke/kubernetes-dashboard-amd64
 4 833563f653b3: Pull complete 
 5 Digest: sha256:7755c0e7cb7e2585d21712f90e3d86d71cbc6362ab8fe283dae84cedc9c13396
 6 Status: Downloaded newer image for registry.cn-qingdao.aliyuncs.com/wangxiaoke/kubernetes-dashboard-amd64:v1.10.0
 7 [root@k8s-master ~]# docker images 
 8 REPOSITORY                                                               TAG                 IMAGE ID            CREATED             SIZE
 9 192.168.110.133:5000/tomcat                                              latest              2eb5a120304e        8 days ago          647 MB
10 docker.io/tomcat                                                         latest              2eb5a120304e        8 days ago          647 MB
11 192.168.110.133:5000/mysql                                               5.7.30              9cfcce23593a        9 days ago          448 MB
12 docker.io/mysql                                                          5.7.30              9cfcce23593a        9 days ago          448 MB
13 docker.io/busybox                                                        latest              1c35c4412082        2 weeks ago         1.22 MB
14 docker.io/registry                                                       latest              708bc6af7e5e        4 months ago        25.8 MB
15 192.168.110.133:5000/nginx                                               1.15                53f3fd8007f7        13 months ago       109 MB
16 docker.io/nginx                                                          1.15                53f3fd8007f7        13 months ago       109 MB
17 registry.cn-qingdao.aliyuncs.com/wangxiaoke/kubernetes-dashboard-amd64   v1.10.0             9e12bc435ba6        15 months ago       122 MB
18 192.168.110.133:5000/nginx                                               1.13                ae513a47849c        2 years ago         109 MB
19 docker.io/nginx                                                          1.13                ae513a47849c        2 years ago         109 MB
20 registry.access.redhat.com/rhel7/pod-infrastructure                      latest              99965fb98423        2 years ago         209 MB
21 192.168.110.133:5000/pod-infrastructure                                  latest              34d3450d733b        3 years ago         205 MB
22 [root@k8s-master ~]# docker tag registry.cn-qingdao.aliyuncs.com/wangxiaoke/kubernetes-dashboard-amd64:v1.10.0 192.168.110.133:5000/kubernetes-dashboard-amd64:v1.10.0
23 [root@k8s-master ~]# docker push 192.168.110.133:5000/kubernetes-dashboard-amd64:v1.10.0 
24 The push refers to a repository [192.168.110.133:5000/kubernetes-dashboard-amd64]
25 5f222ffea122: Pushed 
26 v1.10.0: digest: sha256:7755c0e7cb7e2585d21712f90e3d86d71cbc6362ab8fe283dae84cedc9c13396 size: 529
27 [root@k8s-master ~]# 

dashboard-deploy.yaml,对配置进行修改,具体内容,如下所示。

 1 apiVersion: extensions/v1beta1
 2 kind: Deployment
 3 metadata:
 4 # Keep the name in sync with image version and
 5 # gce/coreos/kube-manifests/addons/dashboard counterparts
 6   name: kubernetes-dashboard-latest
 7   namespace: kube-system
 8 spec:
 9   replicas: 1
10   template:
11     metadata:
12       labels:
13         k8s-app: kubernetes-dashboard
14         version: latest
15         kubernetes.io/cluster-service: "true"
16     spec:
17       containers:
18       - name: kubernetes-dashboard
19         image: 192.168.110.133:5000/kubernetes-dashboard-amd64:v1.10.0
20         resources:
21           # keep request = limit to keep this container in guaranteed class
22           limits:
23             cpu: 100m
24             memory: 50Mi
25           requests:
26             cpu: 100m
27             memory: 50Mi
28         ports:
29         - containerPort: 9090
30         args:
31          -  --apiserver-host=http://192.168.110.133:8080
32         livenessProbe:
33           httpGet:
34             path: /
35             port: 9090
36           initialDelaySeconds: 30
37           timeoutSeconds: 30

修改的地方,如下所示:

配置完毕,创建deployment,如下所示:

1 [root@k8s-master dashboard]# kubectl create -f dashboard-deploy.yaml 
2 deployment "kubernetes-dashboard-latest" created

修改dashboard-svc.yaml配置文件,其中port是VIP的端口,targetPort是容器的端口,访问vip的端口80就会跳转到targetPort的9090端口。

[root@k8s-master dashboard]# vim dashboard-svc.yaml

 1 apiVersion: v1
 2 kind: Service
 3 metadata:
 4   name: kubernetes-dashboard
 5   namespace: kube-system
 6   labels:
 7     k8s-app: kubernetes-dashboard
 8     kubernetes.io/cluster-service: "true"
 9 spec:
10   selector:
11     k8s-app: kubernetes-dashboard
12   ports:
13   - port: 80
14     targetPort: 9090

开始创建svc,命令如下所示:

1 [root@k8s-master dashboard]# kubectl create -f dashboard-svc.yaml 
2 service "kubernetes-dashboard" created
3 [root@k8s-master dashboard]# 

创建完毕,查看是否已经正常启动了。

 1 [root@k8s-master dashboard]# kubectl get all --namespace=kube-system
 2 NAME                                 DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
 3 deploy/kube-dns                      1         1         1            1           4h
 4 deploy/kubernetes-dashboard-latest   1         1         1            1           4m
 5 
 6 NAME                       CLUSTER-IP       EXTERNAL-IP   PORT(S)         AGE
 7 svc/kube-dns               10.254.230.254   <none>        53/UDP,53/TCP   4h
 8 svc/kubernetes-dashboard   10.254.141.73    <none>        80/TCP          1m
 9 
10 NAME                                        DESIRED   CURRENT   READY     AGE
11 rs/kube-dns-778415672                       1         1         1         4h
12 rs/kubernetes-dashboard-latest-2375448378   1         1         1         4m
13 
14 NAME                                              READY     STATUS    RESTARTS   AGE
15 po/kube-dns-778415672-f9ssw                       4/4       Running   8          4h
16 po/kubernetes-dashboard-latest-2375448378-34m4f   1/1       Running   0          4m
17 [root@k8s-master dashboard]# kubectl get all --namespace=kube-system -o wide
18 NAME                                 DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
19 deploy/kube-dns                      1         1         1            1           4h
20 deploy/kubernetes-dashboard-latest   1         1         1            1           4m
21 
22 NAME                       CLUSTER-IP       EXTERNAL-IP   PORT(S)         AGE       SELECTOR
23 svc/kube-dns               10.254.230.254   <none>        53/UDP,53/TCP   4h        k8s-app=kube-dns
24 svc/kubernetes-dashboard   10.254.141.73    <none>        80/TCP          1m        k8s-app=kubernetes-dashboard
25 
26 NAME                                        DESIRED   CURRENT   READY     AGE       CONTAINER(S)                              IMAGE(S)                                                                                                                                                                                               SELECTOR
27 rs/kube-dns-778415672                       1         1         1         4h        kubedns,dnsmasq,dnsmasq-metrics,healthz   myhub.fdccloud.com/library/kubedns-amd64:1.9,myhub.fdccloud.com/library/kube-dnsmasq-amd64:1.4,myhub.fdccloud.com/library/dnsmasq-metrics-amd64:1.0,myhub.fdccloud.com/library/exechealthz-amd64:1.2   k8s-app=kube-dns,pod-template-hash=778415672
28 rs/kubernetes-dashboard-latest-2375448378   1         1         1         4m        kubernetes-dashboard                      192.168.110.133:5000/kubernetes-dashboard-amd64:v1.10.0                                                                                                                                                k8s-app=kubernetes-dashboard,kubernetes.io/cluster-service=true,pod-template-hash=2375448378,version=latest
29 
30 NAME                                              READY     STATUS    RESTARTS   AGE       IP            NODE
31 po/kube-dns-778415672-f9ssw                       4/4       Running   8          4h        172.16.32.3   k8s-node3
32 po/kubernetes-dashboard-latest-2375448378-34m4f   1/1       Running   0          4m        172.16.59.3   k8s-node2
33 [root@k8s-master dashboard]# 

此时,就可以进行访问了,服务已经Running了。

 

2、首先,可以访问一下api-server,可以使用8080端口号。访问地址http://192.168.110.133:8080/

接下来访问倒数第二行的/ui/,访问的效果,如下所示:

报错,如下所示:

1 the server could not find the requested resource 

这里查看k8s的版本,使用kubectl version。

1 [root@k8s-master ~]# kubectl version
2 Client Version: version.Info{Major:"1", Minor:"5", GitVersion:"v1.5.2", GitCommit:"269f928217957e7126dc87e6adfa82242bfe5b1e", GitTreeState:"clean", BuildDate:"2017-07-03T15:31:10Z", GoVersion:"go1.7.4", Compiler:"gc", Platform:"linux/amd64"}
3 Server Version: version.Info{Major:"1", Minor:"5", GitVersion:"v1.5.2", GitCommit:"269f928217957e7126dc87e6adfa82242bfe5b1e", GitTreeState:"clean", BuildDate:"2017-07-03T15:31:10Z", GoVersion:"go1.7.4", Compiler:"gc", Platform:"linux/amd64"}
4 [root@k8s-master ~]# 

注意:k8s v1.5 web界面,kubernetes-dashboard v1.5 ,k8s的安装版本和kubernetes-dashboard的版本对应,此时对k8s了解还不是很深,只能一点点摸索了。

kubernetes dashboard镜像获取:docker pull registry.cn-hangzhou.aliyuncs.com/google-containers/kubernetes-dashboard-amd64:v1.5.0。

这里重新tag,并push到自己的私有镜像仓库了,命令如下所示:

 1 [root@k8s-master dashboard]# docker pull registry.cn-hangzhou.aliyuncs.com/google-containers/kubernetes-dashboard-amd64:v1.5.0
 2 Trying to pull repository registry.cn-hangzhou.aliyuncs.com/google-containers/kubernetes-dashboard-amd64 ... 
 3 sha256:3bccb9256e8b14ae895d40d829ea45992389af3c1767a21eefbd4b3bf723f325: Pulling from registry.cn-hangzhou.aliyuncs.com/google-containers/kubernetes-dashboard-amd64
 4 33a12e3650c8: Pull complete 
 5 Digest: sha256:3bccb9256e8b14ae895d40d829ea45992389af3c1767a21eefbd4b3bf723f325
 6 Status: Downloaded newer image for registry.cn-hangzhou.aliyuncs.com/google-containers/kubernetes-dashboard-amd64:v1.5.0
 7 [root@k8s-master dashboard]# docker images 
 8 REPOSITORY                                                                       TAG                 IMAGE ID            CREATED             SIZE
 9 192.168.110.133:5000/tomcat                                                      latest              2eb5a120304e        8 days ago          647 MB
10 docker.io/tomcat                                                                 latest              2eb5a120304e        8 days ago          647 MB
11 192.168.110.133:5000/mysql                                                       5.7.30              9cfcce23593a        9 days ago          448 MB
12 docker.io/mysql                                                                  5.7.30              9cfcce23593a        9 days ago          448 MB
13 docker.io/busybox                                                                latest              1c35c4412082        2 weeks ago         1.22 MB
14 docker.io/registry                                                               latest              708bc6af7e5e        4 months ago        25.8 MB
15 192.168.110.133:5000/nginx                                                       1.15                53f3fd8007f7        13 months ago       109 MB
16 docker.io/nginx                                                                  1.15                53f3fd8007f7        13 months ago       109 MB
17 192.168.110.133:5000/kubernetes-dashboard-amd64                                  v1.10.0             9e12bc435ba6        15 months ago       122 MB
18 registry.cn-qingdao.aliyuncs.com/wangxiaoke/kubernetes-dashboard-amd64           v1.10.0             9e12bc435ba6        15 months ago       122 MB
19 docker.io/nginx                                                                  1.13                ae513a47849c        2 years ago         109 MB
20 192.168.110.133:5000/nginx                                                       1.13                ae513a47849c        2 years ago         109 MB
21 registry.access.redhat.com/rhel7/pod-infrastructure                              latest              99965fb98423        2 years ago         209 MB
22 192.168.110.133:5000/pod-infrastructure                                          latest              34d3450d733b        3 years ago         205 MB
23 registry.cn-hangzhou.aliyuncs.com/google-containers/kubernetes-dashboard-amd64   v1.5.0              e5133bac8024        3 years ago         88.9 MB
24 [root@k8s-master dashboard]# docker tag registry.cn-hangzhou.aliyuncs.com/google-containers/kubernetes-dashboard-amd64:v1.5.0 192.168.110.133:5000/kubernetes-dashboard-amd64:v1.5.0
25 [root@k8s-master dashboard]# docker push 192.168.110.133:5000/kubernetes-dashboard-amd64:v1.5.0 
26 The push refers to a repository [192.168.110.133:5000/kubernetes-dashboard-amd64]
27 0341ae9b0004: Pushed 
28 v1.5.0: digest: sha256:ddd3454819c089517b434a3ea42abf3c184fce9bf45704abf22513082d900eba size: 529
29 [root@k8s-master dashboard]# 

然后将创建的Pod删除掉,修改deployment配置文件dashboard-deploy.yaml。

1 [root@k8s-master dashboard]# vim dashboard-deploy.yaml 

修改内容,如下所示:

删除创建的delpoyment、svc。

 1 [root@k8s-master dashboard]# vim dashboard-deploy.yaml 
 2 [root@k8s-master dashboard]# kubectl get svc 
 3 NAME         CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE
 4 kubernetes   10.254.0.1   <none>        443/TCP   14d
 5 [root@k8s-master dashboard]# kubectl get svc --namespace=kube-system 
 6 NAME                   CLUSTER-IP       EXTERNAL-IP   PORT(S)         AGE
 7 kube-dns               10.254.230.254   <none>        53/UDP,53/TCP   7h
 8 kubernetes-dashboard   10.254.141.73    <none>        80/TCP          2h
 9 [root@k8s-master dashboard]# kubectl delete svc --namespace=kube-system kubernetes-dashboard 
10 service "kubernetes-dashboard" deleted
11 [root@k8s-master dashboard]# kubectl get svc --namespace=kube-system 
12 NAME       CLUSTER-IP       EXTERNAL-IP   PORT(S)         AGE
13 kube-dns   10.254.230.254   <none>        53/UDP,53/TCP   7h
14 [root@k8s-master dashboard]# kubectl get deployment --namespace=kube-system 
15 NAME                          DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
16 kube-dns                      1         1         1            1           7h
17 kubernetes-dashboard-latest   1         1         1            1           2h
18 [root@k8s-master dashboard]# kubectl delete deployment --namespace=kube-system kubernetes-dashboard-latest 
19 deployment "kubernetes-dashboard-latest" deleted
20 [root@k8s-master dashboard]# 

再次新建delpoyment、svc。

 1 [root@k8s-master dashboard]# kubectl get deployment --namespace=kube-system 
 2 NAME                          DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
 3 kube-dns                      1         1         1            1           7h
 4 kubernetes-dashboard-latest   1         1         1            1           2h
 5 [root@k8s-master dashboard]# kubectl delete deployment --namespace=kube-system kubernetes-dashboard-latest 
 6 deployment "kubernetes-dashboard-latest" deleted
 7 [root@k8s-master dashboard]# kubectl get all -o wide --namespace=kube-system 
 8 NAME              DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
 9 deploy/kube-dns   1         1         1            1           7h
10 
11 NAME           CLUSTER-IP       EXTERNAL-IP   PORT(S)         AGE       SELECTOR
12 svc/kube-dns   10.254.230.254   <none>        53/UDP,53/TCP   7h        k8s-app=kube-dns
13 
14 NAME                    DESIRED   CURRENT   READY     AGE       CONTAINER(S)                              IMAGE(S)                                                                                                                                                                                               SELECTOR
15 rs/kube-dns-778415672   1         1         1         7h        kubedns,dnsmasq,dnsmasq-metrics,healthz   myhub.fdccloud.com/library/kubedns-amd64:1.9,myhub.fdccloud.com/library/kube-dnsmasq-amd64:1.4,myhub.fdccloud.com/library/dnsmasq-metrics-amd64:1.0,myhub.fdccloud.com/library/exechealthz-amd64:1.2   k8s-app=kube-dns,pod-template-hash=778415672
16 
17 NAME                          READY     STATUS    RESTARTS   AGE       IP            NODE
18 po/kube-dns-778415672-f9ssw   4/4       Running   12         7h        172.16.32.3   k8s-node3
19 [root@k8s-master dashboard]# ls
20 dashboard-deploy.yaml  dashboard-svc.yaml
21 [root@k8s-master dashboard]# kubectl create -f dashboard-deploy.yaml 
22 deployment "kubernetes-dashboard-latest" created
23 [root@k8s-master dashboard]# kubectl create -f dashboard-svc.yaml 
24 service "kubernetes-dashboard" created
25 [root@k8s-master dashboard]# kubectl get all -o wide --namespace=kube-system 
26 NAME                                 DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
27 deploy/kube-dns                      1         1         1            1           7h
28 deploy/kubernetes-dashboard-latest   1         1         1            1           15s
29 
30 NAME                       CLUSTER-IP       EXTERNAL-IP   PORT(S)         AGE       SELECTOR
31 svc/kube-dns               10.254.230.254   <none>        53/UDP,53/TCP   7h        k8s-app=kube-dns
32 svc/kubernetes-dashboard   10.254.12.102    <none>        80/TCP          9s        k8s-app=kubernetes-dashboard
33 
34 NAME                                        DESIRED   CURRENT   READY     AGE       CONTAINER(S)                              IMAGE(S)                                                                                                                                                                                               SELECTOR
35 rs/kube-dns-778415672                       1         1         1         7h        kubedns,dnsmasq,dnsmasq-metrics,healthz   myhub.fdccloud.com/library/kubedns-amd64:1.9,myhub.fdccloud.com/library/kube-dnsmasq-amd64:1.4,myhub.fdccloud.com/library/dnsmasq-metrics-amd64:1.0,myhub.fdccloud.com/library/exechealthz-amd64:1.2   k8s-app=kube-dns,pod-template-hash=778415672
36 rs/kubernetes-dashboard-latest-3333846798   1         1         1         15s       kubernetes-dashboard                      192.168.110.133:5000/kubernetes-dashboard-amd64:v1.5.0                                                                                                                                                 k8s-app=kubernetes-dashboard,kubernetes.io/cluster-service=true,pod-template-hash=3333846798,version=latest
37 
38 NAME                                              READY     STATUS    RESTARTS   AGE       IP            NODE
39 po/kube-dns-778415672-f9ssw                       4/4       Running   12         7h        172.16.32.3   k8s-node3
40 po/kubernetes-dashboard-latest-3333846798-j8zjc   1/1       Running   0          15s       172.16.59.3   k8s-node2
41 [root@k8s-master dashboard]# 

访问路径,查看界面。http://192.168.110.133:8080/ui/

k8s的dashboard是k8s的一个web界面的工具,可以创建多种资源或者删除资源。注意,如果三台机器挂起之后,第二次直接启动,你的dashboard好像不能访问耶,我直接重启了三台机器就行了,因为我的所有组件服务都是设置的开机自启动,避免了一些麻烦。

使用k8s的dashboard创建资源来创建一个资源,有两种方式,第一种是按照规则填写,第二种是上传Json格式的文件。

可以看到,默认是Deployment,这个很多东西估计和自己的dashboard的版本有关,所以根据自己的情况进行判断即可。

接下来,可以多这个Deployment进行删除或者编辑配置文件,这里将它删除掉。

然后,可以将创建的Service删除掉,如下所示:

这里Replica Sets也删除掉,deployment并不像RC直接去启动Pod,它们之间的区别是deployment会启动一个RS,RS拥有RC的百分之九十的功能,比RC的功能还多一些。

此时,可以看到创建的两个Pod也就删除掉了。

 1 [root@k8s-master ~]# kubectl get pod -o wide --namespace=kube-system 
 2 NAME                                           READY     STATUS    RESTARTS   AGE       IP            NODE
 3 kube-dns-778415672-q23st                       4/4       Running   4          44m       172.16.92.4   k8s-master
 4 kubernetes-dashboard-latest-3333846798-j8zjc   1/1       Running   1          3d        172.16.19.3   k8s-node2
 5 nginx-2392975400-kmmth                         1/1       Running   0          7m        172.16.93.3   k8s-node3
 6 nginx-2392975400-xcfcc                         1/1       Running   0          7m        172.16.19.4   k8s-node2
 7 [root@k8s-master ~]# kubectl get pod -o wide --namespace=kube-system 
 8 NAME                                           READY     STATUS    RESTARTS   AGE       IP            NODE
 9 kube-dns-778415672-q23st                       4/4       Running   4          47m       172.16.92.4   k8s-master
10 kubernetes-dashboard-latest-3333846798-j8zjc   1/1       Running   1          3d        172.16.19.3   k8s-node2
11 [root@k8s-master ~]# 

 

posted on 2020-06-22 20:37  别先生  阅读(658)  评论(0编辑  收藏