kubernetes1.8.6 安装 dashboard1.8.0

本文介绍了如何解决Kubernetes 1.8.6环境下部署Dashboard 1.8.0遇到的问题,包括生成证书、配置secret及实现用户认证等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

kubernetes1.8.6 安装 dashboard1.8.0

​ 最近使用二进制方式手工撸了Kubernetes1.8.6之后,在部署dashboard1.8.0时遇到了问题。按照之前部署dashboard1.7.1的方式部署1.8.0的时候无法访问dashboard页面。报如下问题。

这里写图片描述

我查看了部署的yaml文件和之前的差别就是1.7.1有initcontainer而1.8.0没有。自己折腾了很久也没有解决。后经过别人指导。发现1.8.0版本的需要自己生产证书,或者只能使用firefox浏览器进行访问。

在使用使用firefox浏览器后选择信任该自动生成的证书之后,果然可以访问到dashboard页面了

这里写图片描述
另外一种方式是自己使用OpenSSL生成dashboard.crt和dashboard.key.然后使用者两个文件重新生成secret kubernetes-dashboard-certs。

使用OpenSSL生成dashboard.crt和dashboard.key:

  1. 生成dashboard.pass.key
# openssl genrsa -des3 -passout pass:x -out dashboard.pass.key 2048
  1. 使用dashboard.pass.key生成dashboard.key
# openssl rsa -passin pass:x -in dashboard.pass.key -out dashboard.key
  1. 使用dashboard.key生成dashboard.crt

    这里让输入一个复杂的密码,不用输入,直接按回车,留空就行。This password is used by Certificate Authorities to authenticate the certificate owner when they want to revoke their certificate. Since this is a self-signed certificate, there’s no way to revoke it via CRL (Certificate Revocation List)。

    意思是这个密码是证书拥有者用来撤销这个证书的,因为这是个个人证书所以无法撤销所以就不需要使用。

# rm dashboard.pass.key
# openssl req -new -key dashboard.key -out dashboard.csr
  1. 生成一个ssl certificate
#openssl x509 -req -sha256 -days 365 -in dashboard.csr -signkey dashboard.key -out dashboard.crt

然后生成的dashboard.crt和dashboard.key就可以用生成dashboard使用的secret了。

部署dashboard1.8.0:

第一步:把生成的dashboard.crt和dashboard.key放到$HOME/certs文件夹内,且文件夹内只有这俩文件。

# kubectl create secret generic kubernetes-dashboard-certs --from-file=$HOME/certs -n kube-system

使用这个命令生成secret。

第二步:把dashboard的service使用NodePort方式部署,

下载yaml文件:

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

把Kubernetes-dashboard.yaml文件中的部署secret命令删除。

# ------------------- Dashboard Secret ------------------- #

apiVersion: v1
kind: Secret
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard-certs
  namespace: kube-system
type: Opaque

把service修改成如下:

# ------------------- Dashboard Service ------------------- #

kind: Service
apiVersion: v1
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard
  namespace: kube-system
spec:
  type: NodePort
  ports:
    - port: 443
      targetPort: 8443
  selector:
    k8s-app: kubernetes-dashboard

部署yaml文件

# kubectl create -f kubernetes-dashboard.yaml

身份认证:

登录dashboard的时候支持两种方式Kuberconfig和token。Kubeconfig中也依赖token字段,所以生成token,必不可少。

生成toekn

我们创建一个admin用户并授予admin角色绑定,使用下面的yaml文件创建admin用户并授予其管理员权限,然后就可以通过token登录dashboard,这种认证方式的本质是通过Service Account的身份认证加上Bearer token请求API server的方式。

---
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

部署该yaml文件

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

查看该token

[root@master yaml]# kubectl get secret -n kube-system | grep dashboard-admin
kubernetes-dashboard-admin-token-5rg7x   kubernetes.io/service-account-token   3         2m
kubectl describe -n kube-system secret/kubernetes-dashboard-admin-token-5rg7x
Name:         kubernetes-dashboard-admin-token-5rg7x
Namespace:    kube-system
Labels:       <none>
Annotations:  kubernetes.io/service-account.name=kubernetes-dashboard-admin
              kubernetes.io/service-account.uid=16a8de6f-fc17-11e7-bd07-e0db55019d08

Type:  kubernetes.io/service-account-token

Data
====
ca.crt:     1359 bytes
namespace:  11 bytes
token:      eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJrdWJlcm5ldGVzLWRhc2hib2FyZC1hZG1pbi10b2tlbi01cmc3eCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50Lm5hbWUiOiJrdWJlcm5ldGVzLWRhc2hib2FyZC1hZG1pbiIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6IjE2YThkZTZmLWZjMTctMTFlNy1iZDA3LWUwZGI1NTAxOWQwOCIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDprdWJlLXN5c3RlbTprdWJlcm5ldGVzLWRhc2hib2FyZC1hZG1pbiJ9.G-Fc8KzImLfUjMz8FYiWHii9U8J_0hOfc-Ev5jQELiVZgaGrfXrRwvwVUXdT5SpI64zg8iC3NkiMR_u4NKggLKMntruIQhpecd2U48tByUOS2eRD09QxL6Kv-X00Ihz_JAQ1dF0QZlwaIFR3pzSSAw1HOa65-qPHe9XbVLhaCFNO4d7joNHIqj5xKWyLUuD3WPzDQ0kPb25GOIfHL-wM0gtBqm92y7SoVyEDSC2GsV7hoDjZ_ibqRu7jB-Z_iziLjfz4SKlbYoOLkK2K92iNcLKC3wpvk7lqIuaxxK5y_K6vENO2sffIsLb6fXHU7jGPL8AF0OLdpa8nrSStoka7aA

把该token值复制到

这里写图片描述

这里写图片描述

参考:
- https://github.com/kubernetes/dashboard/wiki/Installation
- kubernetes dashboard 升级之路

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值