kubernetes(k8s)從入門到精通--配置dashboard及基礎命令-第一章-第二節【入門篇】

意義

           在Kubernetes Dashboard 中可以查看集羣中應用的運行狀態,也能夠創建和修改各種 Kubernetes 資源,比如 Deployment、Job、DaemonSet 等。用戶可以 Scale Up/Down Deployment、執行 Rolling Update、重啓某個 Pod 或者通過嚮導部署新的應用。Dashboard 能顯示集羣中各種資源的狀態以及日誌信息。

可以說,Kubernetes Dashboard 提供了 kubectl 的絕大部分功能,大家可以根據情況進行選擇。

但對於我們來說,我們可以通過配置dashboard瞭解一些K8S基本命令,熟悉K8S基本操作。所以這一節的重點便是通過配置dashboard熟悉某些K8S命令。(以下操作均在k8s-master中執行

一、安裝dashboard

1.1、下載yaml文件到本地

wget https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml

ps:dashboard版本有很多,您可以在github搜索dashboard自己選擇適合自己的版本,在此我選擇的是V1.10.1

1.2、修改yaml文件

由於國內無法從谷歌倉庫k8s.gcr.io下載鏡像,這裏需要使用其他鏡像倉庫拉取。我們只需在kubernetes-dashboard.yaml中修改鏡像地址:

vim kubernetes-dashboard.yaml
1、將k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.1 修改爲 mirrorgooglecontainers/kubernetes-dashboard-amd64:v1.10.1

2、修改Dashboard Service 爲NodePort類型:

      拖到文件最底部,添加type: NodePort    nodePort: 30001  在添加時請注意空格。如下:

kind: Service
apiVersion: v1
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard
  namespace: kube-system
spec:
  type: NodePort
  ports:
    - port: 443
      targetPort: 8443
      nodePort: 30001
  selector:
    k8s-app: kubernetes-dashboard

1.3、部署

 執行以下命令:

kubectl create -f kubernetes-dashboard.yaml

(此命令是加載部署該yaml文件 其中的create參數也可以替換爲apply)

部署完成後輸入 :

kubectl get pods --all-namespaces   

此命令查看節點是否正常運行,如果是RUNNING則代表部署成功

輸入:

kubectl get svc --all-namespaces

此命令可查看dashboard外部端口,其中30001就是我們dashboard綁定的端口。

若出現了其他狀況,則可以輸入delete命令重新部署:

kubectl delete -f kubernetes-dashboard.yaml

1.4、添加ssl證書(可略,但不添加證書只能通過火狐等瀏覽器訪問,谷歌不行)

以下命令請一行一行復制執行

mkdir key && cd key
openssl genrsa -out dashboard.key 2048 

openssl req -new -out dashboard.csr -key dashboard.key -subj '/CN=192.168.238.10'

openssl x509 -req -in dashboard.csr -signkey dashboard.key -out dashboard.crt 

kubectl delete secret kubernetes-dashboard-certs -n kube-system

kubectl create secret generic kubernetes-dashboard-certs --from-file=dashboard.key --from-file=dashboard.crt -n kube-system  #新的證書

kubectl delete pod kubernetes-dashboard-746dfd476-b2r5f -n kube-system    #重啓服務

其中192.168.238.10爲master節點IP ,您需要替換成您自己的masterIP,當然由於dashboard一般是裝在node節點上,所以您也可以將IP換爲裝有dashboard儀表盤的node節點上。

查看dashboard被k8s分配到了哪一臺機器上:

kubectl get pods --all-namespaces -o wide

1.5、訪問

1.請在瀏覽器中輸入https://192.168.238.10

ps(在輸入網址時需要手動添加https://,不然會報錯,其中192.168.238.10爲masterIP,可替換成裝有dashboard的nodeIP)

2.若出現安全限制則點擊高級---接受風險繼續

3.若出現儀表板如下圖片則代表成功:

二、創建管理員進行令牌認證

若不創建管理員即使在用令牌進入的情況下,依然會有警告提醒錯誤,所以爲了眼角舒服,我們首先創建管理員進行認證。

1.   vim k8s-admin.yaml  寫入

apiVersion: v1
kind: ServiceAccount
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: admin
  namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: admin
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: admin
  namespace: kube-system

2.   輸入:

kubectl create -f k8s-admin.yaml

3.查看mountable secrets

輸入:

kubectl describe serviceaccount admin -n kube-system

保存mountable secrets對應的字符串

4.利用mountable secrets查看token

輸入:

kubectl describe secret <mountable secrets> -n kube-system

例如:

kubectl describe secret admin-token-pm94h -n kube-system

其中admin-token-pm94h爲<mountable secrets>的值。

執行上述命令後,將返回token的值,我們可以將此token點擊web上的令牌登錄儀表板,如圖:

5..登錄儀表板

複製此token點擊web上的令牌登錄儀表板,如圖則代表部署成功:

 

三、基礎命令

      kubectl是Kubernetes集羣的命令行工具,通過kubectl能夠對集羣本身進行管理,並能夠在集羣上進行容器化應用的安裝部署。運行kubectl命令的語法如下所示:

 kubectl [command] [TYPE] [NAME] [flags]


comand:指定要對資源執行的操作,例如create、get、describe和delete

TYPE:指定資源類型,資源類型是大小學敏感的,開發者能夠以單數、複數和縮略的形式。例如:

$ kubectl get pod pod1 -n kube-system
$ kubectl get pods pod1 -n kube-system
$ kubectl get po pod1 -n kube-system
NAME:指定資源的名稱,名稱也大小寫敏感的。如果省略名稱,則會顯示所有的資源,例如:
 $ kubectl get pods --all -namespaces
flags:指定可選的參cccc數。例如,可以使用-s或者–server參數指定Kubernetes API server的地址和端口。
另外,可以通過kubectl help命令獲取更多的信息。

ps:我們可以看見kubectl在執行命令時,[command] [TYPE] [NAME] [flags]都是必填參數,

如果獲取所有則需加上參數,比如: kubectl get [TYPE] --all -namespaces

若單獨獲取則也需加上參數,比如::kubectl get [TYPE] [name ] -n kube-system

四、常用命令

1.查看pods

kubectl get pods --all-namespaces

2.查看svc

kubectl get svc --all-namespaces

3.創建/刪除

kubectl delete/create pod -f xxx.yaml

4.查看dashboard被k8s分配到了哪一臺機器上

kubectl get pods --all-namespaces -o wide

5.查看管理員密鑰

kubectl describe serviceaccount admin -n kube-system

6.查看管理員token

kubectl describe secret admin-token-pm94h -n kube-system

7.查看集羣狀態

kubectl cluster-info

8.查看組件狀態

kubectl get cs

 

~~~~未完待續

      到此爲止dashboard配置完成,我們通過配置熟悉了K8S的一些基本操作命令,也搭建好了今後會經常使用的儀表板。下一節,我們將學習通過yaml創建pod對象,並啓動nginx服務感興趣的朋友,可以繼續更進,在此小編祝大家生活愉快。有技術交流的朋友請加微信:laughing_jk。

                                                                                                                                                           ~~您身邊喜歡綠色的朋友

                                                                                                                                                             帥吉帥哥(Spring)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章