安装dashboard并通过nginx外网访问
原本以为很难,其实很简单
要求
- 通过Nginx前端机转发请求到k8s集群的dashboard服务
- 必须是https,并有指定域名
- dashboard采用2.0版本,该版本只提供443的https服务(自签名)
思考
- 整个访问链条全部都是HTTPS,难点在于Nginx拿到dashboard服务的内部证书
- dashboard的部署过程自动生成了密钥,但k8s集群外部无法使用。并且ingress也用到了相同的密钥与service建立TLS链接
- Nginx前端反向代理需要用到dashboard自动生成的密钥才能访问ingress公布出来的服务。所以只能修改yaml并重新设置我们自己的密钥
- Dashboard的Ingress不能采用IP的方式进行服务公布,集群万一有变化就丧失了灵活性。找问题也很麻烦
- 自签名的密钥,要使用与nginx对外公布的域名保持一致。
物料
名称 | 说明 |
---|---|
域名 | cr.smokelee.com |
证书 | cr.smokelee.com.key |
自签证书 | cr.smokelee.com.self.key |
nginx | 外网前端 |
k8s ingress | 在内网公布集群服务 |