如下全部操做均在單master羣集已完成部署的狀況下進行。node
全部服務器均保證防火牆常閉,核心功能selinux關閉。linux
角色 | 地址 | 安裝組件 |
---|---|---|
master | 192.168.142.220 | kube-apiserver kube-controller-manager kube-scheduler etcd |
master02 | 192.168.142.120 | kube-apiserver kube-controller-manager kube-scheduler |
node1 | 192.168.142.136 | kubelet kube-proxy docker flannel etcd |
node2 | 192.168.142.132 | kubelet kube-proxy docker flannel etcd |
nginx1 | 192.168.142.130 | nginx keepalived |
nginx2 | 192.168.142.140 | nginx keepalived |
VIP | 192.168.142.20 | 虛擬地址 |
創建dashboard工做目錄nginx
#在master上進行操做 [root@master ~]# cd /k8s/ #將須要上傳的頁面文件到此文件夾下 [root@master k8s]# mkdir dashboard
「dashboard-rbac」 受權許可鏈接APIservergit
「dashboard-secret」 進行加密配置github
「dashboard-configmap」 dashboard配置文件docker
「dashboard-controller」 應用配置shell
「dashboard-service」 用於發佈應用json
上面四個YAML文件從GITHUB上進行下載,地址:https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/dashboard
vim
#順序不能變!!!切記!!切記!! [root@master dashboard]# kubectl create -f dashboard-rbac.yaml [root@master dashboard]# kubectl create -f dashboard-secret.yaml [root@master dashboard]# kubectl create -f dashboard-configmap.yaml [root@master dashboard]# kubectl create -f dashboard-controller.yaml [root@master dashboard]# kubectl create -f dashboard-service.yaml
[root@master dashboard]# kubectl get pods -n kube-system NAME READY STATUS RESTARTS AGE kubernetes-dashboard-65f974f565-d2wgw 1/1 Running 2 90s #查看詳細信息 [root@master dashboard]# kubectl get pods,svc -n kube-system NAME READY STATUS RESTARTS AGE pod/kubernetes-dashboard-65f974f565-d2wgw 1/1 Running 2 116s NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/kubernetes-dashboard NodePort 10.0.0.109 <none> 443:30001/TCP 112s
編寫執行腳本進行證書自籤api
[root@master01 dashboard]# bash dashboard.sh /root/k8s/apiserver/ ##腳本手工進行編寫 #!/bin/bash #DashBoard用證書 # cat > dashboard-csr.json <<EOF { "CN": "Dashboard", "hosts": [], "key": { "algo": "rsa", "size": 2048 }, "names": [ { "C": "CN", "L": "BeiJing", "ST": "BeiJing" } ] } EOF K8S_CA=$1 cfssl gencert -ca=$K8S_CA/ca.pem -ca-key=$K8S_CA/ca-key.pem -config=$K8S_CA/ca-config.json -profile=kubernetes dashboard-csr.json | cfssljson -bare dashboard kubectl delete secret kubernetes-dashboard-certs -n kube-system kubectl create secret generic kubernetes-dashboard-certs --from-file=./ -n kube-system
#從新應用自籤的證書 [root@master01 dashboard]# vim dashboard-controller.yaml args: # PLATFORM-SPECIFIC ARGS HERE - --auto-generate-certificates - --tls-key-file=dashboard-key.pem - --tls-cert-file=dashboard.pem ##添加最後兩行 #進行從新部署 [root@master01 dashboard]# kubectl apply -f dashboard-controller.yaml
#生成令牌 [root@master01 dashboard]# kubectl create -f k8s-admin.yaml #將令牌進行保存 [root@master01 dashboard]# kubectl get secret -n kube-system NAME TYPE DATA AGE dashboard-admin-token-klr2w kubernetes.io/service-account-token 3 74s default-token-68xvt kubernetes.io/service-account-token 3 54m kubernetes-dashboard-certs Opaque 10 11m kubernetes-dashboard-key-holder Opaque 2 23m kubernetes-dashboard-token-drsc7 kubernetes.io/service-account-token 3 23m #查看保存的令牌 [root@master01 dashboard]# kubectl describe secret dashboard-admin-token-klr2w -n kube-system ##複製token便可