我使用 Kubeadm 操作系统安装了 Kubernetes HA:Centos7 K8S 版本:1.9.6 6 个 VM:2 个 Master,3 个 worker 和一个 LoadBanacer(nginx)
我想使用 LoadBalancer Ip 地址访问仪表板,我该怎么做?有这方面的教程吗?
谢谢
我使用 Kubeadm 操作系统安装了 Kubernetes HA:Centos7 K8S 版本:1.9.6 6 个 VM:2 个 Master,3 个 worker 和一个 LoadBanacer(nginx)
我想使用 LoadBalancer Ip 地址访问仪表板,我该怎么做?有这方面的教程吗?
谢谢
您不能使用 IP,但可以创建一个 Ingress 文件,该文件将指向仪表板服务的路径 dashboard.example.com。不推荐使用此方法,因为这会将您的仪表板向外界打开。但是在允许用户访问仪表板之前,可以使用身份验证代理对用户进行身份验证。我们为此使用了 GitHub Enterprise。
在这里你可以做什么。
1:使用推荐的设置部署仪表板。链接在这里。如果您不提供任何证书也没关系,它会自动生成。
2:创建一个 GitHub 应用
转到https://github.com/settings/developers并创建一个新应用程序。主页 URL 是 Ingress 规则中的 FQDN,例如https://dashboard.example.com。正确处理的关键是回调 URL。将其设置为 https://dashboard.example.com/oauth2/callback。
3:在文件oauth2-proxy.yaml中配置 oauth2_proxy值:
OAUTH2_PROXY_CLIENT_ID with the github <Client ID>
OAUTH2_PROXY_CLIENT_SECRET with the github <Client Secret>
OAUTH2_PROXY_COOKIE_SECRET with value of python -c 'import os,base64; print base64.b64encode(os.urandom(16))'
如果您使用的是 GitHub Enterprise,则需要添加
spec:
containers:
- args:
- --login-url=https://github.YOUR.ORG.URL/login/oauth/authorize
- --redeem-url=https://github.YOUR.ORG.URL/login/oauth/access_token
- --validate-url=https://github.YOUR.ORG.URL/api/v3
4:使用适当的 ULR 修改以下 Ingress。
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
nginx.ingress.kubernetes.io/auth-url: https://$host/oauth2/auth
nginx.ingress.kubernetes.io/auth-signin: https://$host/oauth2/sign_in
nginx.ingress.kubernetes.io/secure-backends: "true"
kubernetes.io/ingress.class: nginx
name: external-auth-oauth2
namespace: kube-system
spec:
rules:
- host: dashboard.example.com
http:
paths:
- backend:
serviceName: kubernetes-dashboard
servicePort: 8443
path: /
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: oauth2-proxy
namespace: kube-system
spec:
rules:
- host: dashboard.example.com
http:
paths:
- backend:
serviceName: oauth2-proxy
servicePort: 4180
path: /oauth2
现在你可以应用这个
kubectl apply -f oauth2-proxy.yaml,dashboard-ingress.yaml