Kubernetes使用Ingress-nginx暴露k8s的Dashboard

本教程不提供ingress-nginx的安装步骤

在搭建好dashboard后我们通常是使用NodePort的方式去访问,本次教程将使用ingress-nginx将dashboard暴露出来。

首先生成https服务需要的证书,其中dashboard.kube.com为本次使用的域名需要和ingress中保持一致

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout kube-dashboard.key -out kube-dashboard.crt -subj "/CN=dashboard.kube.com/O=dashboard.kube.com"

 

创建secret,在ingress不能直接使用证书需要转换为secret才能使用

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

创建Ingress,Ingress内容如下,注意Ingress的namespace必须和后端服务在同一个名称空间中不然创建后依然无法访问

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ingress-dashboard
  namespace: kubernetes-dashboard
  annotations:
    nginx.ingress.kubernetes.io/ingress.class: "nginx"
    nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
spec:
  tls:
  - hosts:
    - dashboard.kube.com
    secretName: dashboard-tls
  rules:
  - host: dashboard.kube.com
    http:
      paths:
      - path: /
        backend:
          serviceName: kubernetes-dashboard
          servicePort: 443

 至此创建完成,打开浏览器访问https://dashboard.kube.com:30443/,30443为我的ingress-nginx的443对应的NodePort,若域名不是真实域名请在hosts文件中配置

Kubernetes使用Ingress-nginx暴露k8s的Dashboard_第1张图片

 

你可能感兴趣的:(Kubernetes使用Ingress-nginx暴露k8s的Dashboard)