k8s 給dashboard配置自定義證書


1.創建secret

[root@master01 1]# ls
server.key  server.pem  
#提前到阿里雲申請的證書

[root@master01 1]# kubectl create secret tls mycentos-cert --key server.key --cert server.pem -n kubernetes-dashboard 
#將申請的證書保存到kubernetes-dashboard 命名空間的secret 名字為mycentos-cert

 

2.導出dashboardyaml文件

[root@master02 ~]# kubectl get pod -n kubernetes-dashboard
NAME                                         READY   STATUS    RESTARTS   AGE
dashboard-metrics-scraper-79694cfc8b-g7lpc   1/1     Running   2          24h
kubernetes-dashboard-57bd6cb5d6-cs2md        1/1     Running   0          9m6s

[root@master02 ~]# kubectl get pod -n kubernetes-dashboard kubernetes-dashboard-57bd6cb5d6-cs2md  -o yaml > 1.yaml
#導出yaml文件,因為dashboard不能edit修改,只能刪了重新構建
[root@master02
~]# cp 1.yaml 11.yaml #備份原來的yaml文件

 

3.修改yaml文件

vi 1.yaml
#這里我就只放修改的地方了,為了保持和原來的信息一致,我們除了需要修改的地方不多做修改
11 spec:
12   containers:
13   - args:
14     - --auto-generate-certificates=false   #不讓他自動創建ssl文件使用我們給的
15     - --namespace=kubernetes-dashboard    
16     - --tls-cert-file=server.pem           #指定pem文件
17     - --tls-key-file=server.key            #指定key文件
18     - --token-ttl=21600
……
43     volumeMounts:
44     - mountPath: /certs   #上面不寫絕對路徑是因為他會自動到這個目錄尋找指定的文件
45       name: kubernetes-dashboard-certs
……
75   volumes:
76   - name: kubernetes-dashboard-certs
77     secret:
78       defaultMode: 420
79       secretName: mycentos-cert   #這個是我們剛剛創建的cesret,掛載到/certs下,他會自己找

 

4.重建dashboard

[root@master02 ~]# kubectl delete -f 11.yaml   #刪除原來的dashboard
[root@master02 ~]# kubectl apply -f 1.yaml     #創建我們修改好的dashboard
[root@master02 ~]# kubectl get pod -n kubernetes-dashboard
NAME                                         READY   STATUS    RESTARTS   AGE
dashboard-metrics-scraper-79694cfc8b-g7lpc   1/1     Running   2          24h
kubernetes-dashboard-57bd6cb5d6-cs2md        1/1     Running   0          18m

#已經啟動,配置ingress試試效果。

 

5.給dashboard 配置一個域名試試效果。

  

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: kubernetes-dashboard
  namespace: kubernetes-dashboard
spec:
  rules:
  - host: dash.mycentos.top
    http:
      paths:
      - backend:
          serviceName: kubernetes-dashboard
          servicePort: 443
        path: /
        pathType: ImplementationSpecific
  tls:
  - hosts:
    - dash.mycentos.top
    secretName: mycentos-cert

#這里是我的yaml,不要直接復制,這里只是作為參考

 

6.測試

root@master02 ~]# kubectl get svc -n kubernetes-dashboard
NAME                        TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)         AGE
dashboard-metrics-scraper   ClusterIP   10.96.45.5     <none>        8000/TCP        24h
kubernetes-dashboard        NodePort    10.96.44.195   <none>        443:30001/TCP   24h

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM