栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Debian11

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Debian11

本篇文章不提供ingress-nginx的安装步骤,专门写一篇安装ingress-nginx的文章

在搭建好dashboard后我们通常是使用NodePort的方式去访问,本篇将使用ingress-nginx将dashboard暴露出来。
如果之前是直接安装的dashboard且使用NodePort,建议先删除,重新安装,因为证书不对。

kubectl delete -f dashboard.yaml

证书
首先生成https服务需要的证书(自签证书)
其中dashboard.pooh.online为本次使用的域名需要和ingress中保持一致

openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout dashboard.key -out dashboard.crt -subj "/CN=dashboard.pooh.online/O=dashboard.pooh.online"

也可以使用certbot去搞个证书,但是这个你得有个A解析,我这个是内网玩的,就自签就行了

root@k8s-master01:~/tls# openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout dashboard.key -out dashboard.crt -subj "/CN=dashboard.pooh.online/O=dashboard.pooh.online"
Generating a RSA private key
.....................+++++
........................................................................+++++
writing new private key to 'dashboard.key'
-----
root@k8s-master01:~/tls# 
root@k8s-master01:~/tls# ls
dashboard.crt  dashboard.key

创建一个命名空间

kubectl create ns kubernetes-dashboard

创建secret

创建secret,在ingress不能直接使用证书需要转换为secret才能使用,要使用上面的命名空间

kubectl create secret tls kubernetes-dashboard-certs --key dashboard.key --cert dashboard.crt -n kubernetes-dashboard

修改配置dashboard
vim dashboard.yaml
修改deployment部分的容器参数, 添加使用自定义证书文件的相关参数

args:

            - --tls-cert-file=dashboard.crt # 证书

            - --tls-key-file=dashboard.key # 私钥

            - --auto-generate-certificates  # 这行好像不能注释

             --token-ttl=7200 # 设置token超时时间

            - --namespace=kubernetes-dashboard

注释掉创建kubernetes-dashboard-certs Secret certs部分的内容

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

重新安装dashboard.yaml

kubectl apply -f dashboard.yaml

创建ingress文件
创建ingress文件, 指定对应的hosts、tls及路由规则配置
vim ingress-dashboard.yaml

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  namespace: kubernetes-dashboard
  name: ingress-dashboard
  annotations:
    kubernetes.io/ingress.class: "nginx"
    nginx.ingress.kubernetes.io/use-regex: "true"
    nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
    nginx.ingress.kubernetes.io/rewrite-target: /
    nginx.ingress.kubernetes.io/ssl-redirect: "true"
    nginx.org/ssl-services: "kubernetes-dashboard"
spec:
  tls:
    - hosts: 
      - "dashboard.pooh.online"
      secretName: kubernetes-dashboard-certs
  rules:
  - host: dashboard.pooh.online
    http:
      paths:
        - path: /
          pathType: Prefix
          backend:
            service: 
               name: kubernetes-dashboard
               port: 
                 number: 443
kubectl apply -f ingress-dashboard.yaml

创建一个超级管理员账号
vim user.yaml

apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin-user
  namespace: kubernetes-dashboard
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: admin-user
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: admin-user
  namespace: kubernetes-dashboard

把登录的密钥给找出来

root@k8s-master01:~# kubectl -n kubernetes-dashboard get secret $(kubectl -n kubernetes-dashboard get sa/admin-user -o jsonpath="{.secrets[0].name}") -o go-template="{{.data.token | base64decode}}"

最后得到那一坨,就是登录dashboard的token
绑定hosts
还差一步,绑定一个hosts,我当时做ingress的时候,是安装到node1上面,所以,绑定hosts也是
192.168.3.204 dashboard.pooh.online
打开浏览器

https://dashboard.pooh.online,用那个token就可以登录了

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/913593.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号