kubernetes1.9中部署dashboard1.8.3


1.9k8s dashboard可以有两种访问方式

kubeconfigHTTPS)和tokenhttp

一、基于token的访问

1、下载官方的dashboard

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

2、编辑yaml文件

1)添加类型nodeport

spec:

  type: NodePort

  ports:

    - port: 443

      targetPort:8443

  selector:

2)修改镜像为自己可用的镜像

image:gcr.io/google_containers/kubernetes-dashboard-amd64:v1.8.3

3、创建pod

kubectl create -f kube-dashboard-admin.yaml

 

4、查看pod

kubectl get svc,pod --all-namespaces  | grep dashboard

kube-system  svc/kubernetes-dashboard  NodePort    10.254.15.217             443:27446/TCP   19h

kube-system  po/kubernetes-dashboard-cdc8db7d-7xnsw   1/1       Running   0         19h

 

5、创建RBAC

vim kube-dashboard-admin.yaml

---

apiVersion: v1

kind: ServiceAccount

metadata:

  labels:

    k8s-app:kubernetes-dashboard

  name:kubernetes-dashboard-admin

  namespace:kube-system

---

apiVersion: rbac.authorization.k8s.io/v1beta1

kind: ClusterRoleBinding

metadata:

  name:kubernetes-dashboard-admin

  labels:

    k8s-app:kubernetes-dashboard

roleRef:

  apiGroup:rbac.authorization.k8s.io

  kind: ClusterRole

  name:cluster-admin

subjects:

- kind: ServiceAccount

  name:kubernetes-dashboard-admin

  namespace:kube-system

 

6、修改deployment文件中的ServiceAccount名称

146  serviceAccountName:kubernetes-dashboard-admin

重启pod

kubectl apply -f kubernetes-dashboard.yaml -f kubernetes-dashboard-admin.rbac.yaml

7、查看RBAC的token登录UI界面时用

kubectl -n kube-system get secret | grepkubernetes-dashboard-admin

 

 

8、使用proxy暴露服务

9访问 192.168.11.70:2355/ui

访问dashboard后直接skip就可以了

 

 

 

 

 

 

kubeconfig登录dashboard

参考文档:

https://github.com/gjmzj/kubeasz/blob/master/docs/guide/dashboard-1.8.2.md

https://jimmysong.io/posts/kubernetes-dashboard-upgrade/

 

 

 

首先:kubeconfig就是.kube/config文件

但是得手动的将token放到里面

1wget下载dashboard

wget https://raw.githubusercontent.com/deauss2017/k8s/master/1.9/dashboard/yaml-file/admin-rbac.yaml

wget https://raw.githubusercontent.com/deauss2017/k8s/master/1.9/dashboard/yaml-file/kube-rbac.yaml

wget https://raw.githubusercontent.com/deauss2017/k8s/master/1.9/dashboard/yaml-file/kubernetes-dashboard.yaml

配置apiserver服务

wget https://raw.githubusercontent.com/deauss2017/k8s/master/1.9/heapster/yaml-file/kube-apiserver.service

 

2、修改master上的API

vim /etc/systemd/system/kube-apiserver.service

 

重启API

systemctldaemon-reload

systemctl restartkube-apiserver

systemctl statuskube-apiserver

 

3、部署heapster服务

wget https://raw.githubusercontent.com/deauss2017/k8s/master/1.9/heapster/yaml-file/grafana.yaml

wget https://raw.githubusercontent.com/deauss2017/k8s/master/1.9/heapster/yaml-file/heapster-rbac.yaml

wget https://raw.githubusercontent.com/deauss2017/k8s/master/1.9/heapster/yaml-file/heapster.yaml

wget https://raw.githubusercontent.com/deauss2017/k8s/master/1.9/heapster/yaml-file/influxdb.yaml

 

按顺序创建

heapster-rbac.yaml>>>>> influxdb.yaml>>>>> heapster.yaml >>>>> grafana.yaml

 

注:在k8s中服务的域名是:

服务名.空间名.svc.cluster.local

例如:

monitoring-influxdb.kube-system.svc.cluster.local

 

 

# 部署dashboard yaml配置文件

 kubectl create -f kubernetes-dashboard.yaml

 kubectl create -f ui-admin-rbac.yaml

 kubectl create -f ui-read-rbac.yaml

 kubectlcreate -f admin-user-sa-rbac.yaml

3、验证

kubectl get pod -n kube-system | grep dashboard
kubectl get svc -n kube-system|grep dashboard
kubectl cluster-info|grep dashboard

 

4、修改apiserver配置

修改配置文件中的IP

 

basic-auth.csv设置dashboard密码登录

格式:密码,用户,ID

例如:

admin123, admin, 2

 

重启master

5、登录

https://192.168.11.70:6443/ui

https://192.168.11.70:6443/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/#!/ingress?namespace=default

 

 

使用token访问

kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk '{print $1}')

token复制到对话框中点击登录

使用kubeconfig访问

上传config配置文件到Windows

sz /root/.kube/config

将上边的token添加到config

 

 

 

 

 

 

注:

1apiserver中开启了RBAC认证,所以要锁RBAC

2kubeconfig = ./kube/conf = kubernetes.pem要在config文件的最后添加token信息才能访问

3、修改API组件的配置文件添加密码和用登录认证,开启CA认证,关闭匿名访问

--authorization-mode=Node,RBAC\                                                                开启RBAC认证

--anonymous-auth=false\                                                                                  关闭匿名访问

 --basic-auth-file=/etc/kubernetes/ssl/basic-auth.csv \                          添加密码和用登录认证(密码,用户名,ID号)

4、访问方式一共有三种:

1)通过kubectl  proxy访问

kubectl proxy --address='192.168.11.70' --port=23455--accept-hosts='^*$' &

访问 192.168.11.70:2355/ui

 

2)通过API访问(密码+用户名+token(kubeconfig)

https://192.168.11.70:6443/ui

https://192.168.11.70:6443/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/#!/login




参考文档:

主要https://github.com/gjmzj/kubeasz/blob/master/docs/guide/dashboard-1.8.2.md

https://blog.qikqiak.com/post/add-authorization-for-kubernetes-dashboard/


你可能感兴趣的:(kubernetes1.9中部署dashboard1.8.3)