10、为k8s集群配置dashboard服务
$ cd /etc/kubernetes/ && wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta8/aio/deploy/recommended.yaml#将名称空间修改为默认system$ sed -i '/namespace/ s/kubernetes-dashboard/kube-system/g' recommended.yaml$vi kubernetes-dashboard.yaml#修改service类型为NodePort类型.......kind: ServiceapiVersion: v1metadata:labels:k8s-app: kubernetes-dashboardname: kubernetes-dashboardnamespace: kube-systemspec:type: NodePort #添加一行ports:- port: 443targetPort: 8443nodePort: 31260 #添加一行selector:k8s-app: kubernetes-dashboard......
对于有些kubernetes-dashboard中使用官方镜像无法拉取的情况,可以更改为国内源。
比如:image: k8s.gcr.io/google_containers/kubernetes-dashboard-amd64:v1.10.1可以将镜像仓库地址k8s.gcr.io改成registry.aliyuncs.com/google_containers即:image: registry.aliyuncs.com/google_containers/kubernetes-dashboard-amd64:v1.10.1
11、访问集群
11.1 通过令牌方式访问
mkdir key && cd key#生成证书openssl genrsa -out dashboard.key 2048openssl req -new -out dashboard.csr -key dashboard.key -subj '/CN=172.17.3.141'openssl x509 -req -in dashboard.csr -signkey dashboard.key -out dashboard.crt#删除原有的证书secretkubectl delete secret kubernetes-dashboard-certs -n kube-system#创建新的证书secretkubectl create secret generic kubernetes-dashboard-certs --from-file=dashboard.key --from-file=dashboard.crt -n kube-system#查看podkubectl get pod -n kube-system#删除pod,启动新pod生效kubectl delete pod kubernetes-dashboard-5b9dd4f974-ztp89 -n kube-system#编辑文件vim k8s-admin.yamlkind: ClusterRoleBindingapiVersion: rbac.authorization.k8s.io/v1beta1metadata:name: adminannotations:rbac.authorization.kubernetes.io/autoupdate: "true"roleRef:kind: ClusterRolename: cluster-adminapiGroup: rbac.authorization.k8s.iosubjects:- kind: ServiceAccountname: adminnamespace: kube-system---apiVersion: v1kind: ServiceAccountmetadata:name: adminnamespace: kube-systemlabels:kubernetes.io/cluster-service: "true"addonmanager.kubernetes.io/mode: Reconcilekubectl create -f k8s-admin.yamlkubectl get serviceaccount -n kube-systemkubectl describe serviceaccount admin -n kube-systemkubectl describe secret admin-token-2frfz -n kube-system#保存最后一步命令查看到的token密钥,就是登录dashboard需要的令牌,完成登陆
11.2 通过kubeconfig 方式访问
DASH_TOCKEN=$(kubectl get secret -n kube-system admin-token-mcqj5 -o jsonpath={.data.token}|base64 -d)kubectl config set-cluster kubernetes --server=10.0.0.11:6443 --kubeconfig=/root/dashbord-admin.confkubectl config set-credentials admin --token=$DASH_TOCKEN --kubeconfig=/root/dashbord-admin.confkubectl config set-context admin --cluster=kubernetes --user=admin --kubeconfig=/root/dashbord-admin.confkubectl config use-context admin --kubeconfig=/root/dashbord-admin.conf

