kubernetes dashboardにIngressを通してアクセスする
kubernetesのリソースをGUIで操作できるdashboardを導入する。
環境
クライアント...dashboardを利用する端末(ubuntu)
サーバ...master1台(centos8)、worker2台(centos8)
kubernetes v1.21.3
以下のyamlを利用する。そのままだと見られないリソースが多いので適宜カスタマイズ。
https://raw.githubusercontent.com/kubernetes/dashboard/v2.3.1/aio/deploy/recommended.yaml
kube proxyコマンドで外部からの通信を受け付けるようにしても、dashboardを利用できず。。
kubectl proxy --address 0.0.0.0 --accept-hosts '.*'
以下のページによるとホストからのアクセス以外はHTTPSでのアクセスが必要なので、IngressでTLS設定をしてアクセスしてみる。
https://github.com/kubernetes/dashboard/blob/master/docs/user/accessing-dashboard/README.md#login-not-available
IngressをLoadBalancerで公開したいので、OpenELBをインストールし、セットアップ詳細は省略する。
設定をしなければNodePortで実施する。
https://porterlb.io/docs/getting-started/installation/install-porter-on-kubernetes/
IngressでTLSを終端する設定
①kubectl create secret tlsを実行
kubectl create secret tls dashboard-tls --key=dashboard.key --cert=dashboard.crt -n kubernetes-dashboard
②以下のようにingressオブジェクトを作成
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: k8s-dashboard-ing
namespace: kubernetes-dashboard
spec:
tls:
- hosts:
- k8s-dashboard.local
secretName: dashboard-tls
rules:
- host: k8s-dashboard.local
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: kubernetes-dashboard
port:
number: 443
③serviceリソース「kubernetes-dashboard」をNodePortへ変更
...
name: kubernetes-dashboard
namespace: kubernetes-dashboard
spec:
type: NodePort
ports:
- port: 443
targetPort: 8443
selector:
...
通信の設定が終わったのでデプロイし、実際にアクセス。しかしうまく行っていない。。
・https://k8s-dashboard.local
以下のページを参考にIngressを修正したらアクセスできた。
https://serverfault.com/questions/1031810/400-error-with-nginx-ingress-to-kubernetes-dashboard
annotations:
nginx.ingress.kubernetes.io/backend-protocol: HTTPS
nginx.ingress.kubernetes.io/configuration-snippet: |-
proxy_ssl_server_name on;
proxy_ssl_name $host;
所感
セキュリティを確保するのであればローカルからkubectl proxy公開したほうがよさそう。
Author And Source
この問題について(kubernetes dashboardにIngressを通してアクセスする), 我々は、より多くの情報をここで見つけました https://qiita.com/hsmto25519/items/8f35be006c3d79fbbfb7著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .