Dashboard Install
Kubernetes Dashboard就是k8s集群的web界面,集合了所有命令行可以操作的所有命令。界面如下所示
环境
192.168.48.101 master01
192.168.48.201 node01
192.168.48.202 node02
dashboard 安装
k8s的dashboard安装可以说是非常简单,参考github的指导既可。项目地址如下
https://github.com/kubernetes/dashboard
官方安装命令
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml
但是这么安装存在几个问题:
- 镜像国内无法直接访问,需要设置docker代理,才能下载镜像
- dashboard的默认web证书是自动生成的,由于时间和名称存在问题,导致谷歌和ie浏览器无法打开登录界面,经过测试Firefox可以正常打开
镜像
dashboardv1.10.1镜像下载
链接:https://pan.baidu.com/s/1A4NI1guHwOFQv-n7F6ajYA 提取码:fvne
各节点无脑加载镜像
docker load -i dashboard.tar.gz
创建dashboard
[root@master01 ~]# kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml
secret/kubernetes-dashboard-certs created
serviceaccount/kubernetes-dashboard created
role.rbac.authorization.k8s.io/kubernetes-dashboard-minimal created
rolebinding.rbac.authorization.k8s.io/kubernetes-dashboard-minimal created
deployment.apps/kubernetes-dashboard created
service/kubernetes-dashboard created
[root@master01 ~]# kubectl get pod -n kube-system
NAME READY STATUS RESTARTS AGE
coredns-fb8b8dccf-jfm2m 1/1 Running 8 6d19h
coredns-fb8b8dccf-r8tqp 1/1 Running 7 6d19h
etcd-master 1/1 Running 5 6d19h
kube-apiserver-master01 1/1 Running 5 6d19h
kube-controller-manager-master01 1/1 Running 4 6d19h
kube-flannel-ds-amd64-26xjf 1/1 Running 7 6d19h
kube-flannel-ds-amd64-82s7n 1/1 Running 3 6d19h
kube-flannel-ds-amd64-sd2j9 1/1 Running 3 6d19h
kube-proxy-792hk 1/1 Running 5 6d19h
kube-proxy-88cgt 1/1 Running 3 6d19h
kube-proxy-frgtq 1/1 Running 2 6d19h
kube-scheduler-master01 1/1 Running 4 6d19h
kubernetes-dashboard-5f7b999d65-rmxhw 1/1 Running 0 92s
[root@master ~]#
kubernetes-dashboard service 在集群内部,无法再外部访问,为了方便访问,得暴露kubernetes-dashboard 443端口给NodePort
[root@master01 ~]# kubectl get svc -n kube-system
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kube-dns ClusterIP 10.96.0.10 <none> 53/UDP,53/TCP,9153/TCP 6d19h
kubernetes-dashboard ClusterIP 10.109.71.206 <none> 443/TCP 2m25s
[root@master01 ~]# kubectl edit svc kubernetes-dashboard -n kube-system
# Please edit the object below. Lines beginning with a '#' will be ignored,
# and an empty file will abort the edit. If an error occurs while saving this file will be
# reopened with the relevant failures.
#
apiVersion: v1
kind: Service
metadata:
annotations:
kubectl.kubernetes.io/last-applied-configuration: |
{"apiVersion":"v1","kind":"Service","metadata":{"annotations":{},"labels":{"k8s-app":"kubernetes-dashboard"},"name":"kubernetes-dashboard","namespace":"kube-system"},"spec":{"ports":[{"port":443,"targetPort":8443}],"selector":{"k8s-app":"kubernetes-dashboard"}}}
creationTimestamp: "2019-04-06T14:30:32Z"
labels:
k8s-app: kubernetes-dashboard
name: kubernetes-dashboard
namespace: kube-system
resourceVersion: "37052"
selfLink: /api/v1/namespaces/kube-system/services/kubernetes-dashboard
uid: 88d3c228-5878-11e9-8c85-000c296cdc6e
spec:
clusterIP: 10.109.71.206
ports:
- port: 443
protocol: TCP
targetPort: 8443
selector:
k8s-app: kubernetes-dashboard
sessionAffinity: None
type: NodePort
status:
loadBalancer: {}
[root@master01 ~]# kubectl get svc -n kube-system
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kube-dns ClusterIP 10.96.0.10 <none> 53/UDP,53/TCP,9153/TCP 6d19h
kubernetes-dashboard NodePort 10.109.71.206 <none> 443:30440/TCP 6m41s
通过谷歌浏览器访问,发现居然无法继续,如下图所示: