k8s无脑系列(十) - k8s dashboard 2.0通过ingress和nginx访问

安装dashboard并通过nginx外网访问

原本以为很难,其实很简单

要求

  1. 通过Nginx前端机转发请求到k8s集群的dashboard服务
  2. 必须是https,并有指定域名
  3. dashboard采用2.0版本,该版本只提供443的https服务(自签名)

思考

  1. 整个访问链条全部都是HTTPS,难点在于Nginx拿到dashboard服务的内部证书
  2. dashboard的部署过程自动生成了密钥,但k8s集群外部无法使用。并且ingress也用到了相同的密钥与service建立TLS链接
  3. Nginx前端反向代理需要用到dashboard自动生成的密钥才能访问ingress公布出来的服务。所以只能修改yaml并重新设置我们自己的密钥
  4. Dashboard的Ingress不能采用IP的方式进行服务公布,集群万一有变化就丧失了灵活性。找问题也很麻烦
  5. 自签名的密钥,要使用与nginx对外公布的域名保持一致。

物料

名称 说明
域名 cr.smokelee.com
证书 cr.smokelee.com.key
自签证书 cr.smokelee.com.self.key
nginx 外网前端
k8s ingress 在内网公布集群服务
浏览器 Nginx Ingress DashboardService https://cr.smokelee.com
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
要通过YAML文件部署Kubernetes Dashboard,可以按照以下步骤进行操作: 1. 首先,创建一个名为`dashboard.yaml`的YAML文件,并使用文本编辑器打开它。 2. 在`dashboard.yaml`文件中,添加以下内容: ```yaml apiVersion: v1 kind: Namespace metadata: name: kubernetes-dashboard --- apiVersion: v1 kind: ServiceAccount metadata: name: admin-user namespace: kubernetes-dashboard ``` 这将创建一个名为`kubernetes-dashboard`的命名空间以及一个名为`admin-user`的ServiceAccount。 3. 接下来,添加以下内容来授予ServiceAccount相关权限: ```yaml 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 ``` 这将创建一个名为`admin-user`的ClusterRoleBinding,并将其绑定到`cluster-admin`角色。 4. 最后,在`dashboard.yaml`文件中添加以下内容来部署Dashboard: ```yaml apiVersion: apps/v1 kind: Deployment metadata: name: kubernetes-dashboard namespace: kubernetes-dashboard labels: k8s-app: kubernetes-dashboard spec: replicas: 1 selector: matchLabels: k8s-app: kubernetes-dashboard template: metadata: labels: k8s-app: kubernetes-dashboard spec: serviceAccountName: admin-user containers: - name: kubernetes-dashboard image: kubernetesui/dashboard:v2.4.0 ports: - containerPort: 8443 protocol: TCP args: - --enable-skip-login ``` 这将创建一个名为`kubernetes-dashboard`的Deployment,并使用`admin-user` ServiceAccount进行验证。Dashboard的镜像版本为v2.4.0,并且启用了跳过登录的功能。 5. 保存并关闭`dashboard.yaml`文件。 6. 运行以下命令来部署Dashboard: ``` kubectl apply -f dashboard.yaml ``` 这将使用`dashboard.yaml`文件中定义的配置部署Kubernetes Dashboard。 部署完成后,可以使用以下命令检查Dashboard的状态: ``` kubectl get all -n kubernetes-dashboard ``` 确保所有相关的Pod和服务都处于运行状态。然后,可以通过访问Dashboard的URL(通常是https://<cluster-ip>:8443)来访问Kubernetes Dashboard。请注意,具体的URL和访问方式可能因集群配置而有所不同。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值