contrib/ansible スクリプトを使用してKubernetesをインストールしました。 cluster-infoを実行すると:
[osboxes@kube-master-def ~]$ kubectl cluster-info
Kubernetes master is running at http://localhost:8080
Elasticsearch is running at http://localhost:8080/api/v1/proxy/namespaces/kube-system/services/elasticsearch-logging
Heapster is running at http://localhost:8080/api/v1/proxy/namespaces/kube-system/services/heapster
Kibana is running at http://localhost:8080/api/v1/proxy/namespaces/kube-system/services/kibana-logging
KubeDNS is running at http://localhost:8080/api/v1/proxy/namespaces/kube-system/services/kube-dns
kubedash is running at http://localhost:8080/api/v1/proxy/namespaces/kube-system/services/kubedash
Grafana is running at http://localhost:8080/api/v1/proxy/namespaces/kube-system/services/monitoring-grafana
InfluxDB is running at http://localhost:8080/api/v1/proxy/namespaces/kube-system/services/monitoring-influxdb
クラスターは、安全でないポートを持つlocalhostで公開され、SSLを介して安全なポート443で公開されます
kube 18103 1 0 12:20 ? 00:02:57 /usr/bin/kube-controller-manager --logtostderr=true --v=0 --master=https://10.57.50.161:443 -- kubeconfig=/etc/kubernetes/controller-manager.kubeconfig --service-account-private-key-file=/etc/kubernetes/certs/server.key --root-ca-file=/etc/kubernetes/certs/ca.crt kube 18217 1 0 12:20 ? 00:00:15 /usr/bin/kube-scheduler --logtostderr=true --v=0 --master=https://10.57.50.161:443 --kubeconfig=/etc/kubernetes/scheduler.kubeconfig root 27094 1 0 12:21 ? 00:00:00 /bin/bash /usr/libexec/kubernetes/kube-addons.sh kube 27300 1 1 12:21 ? 00:05:36 /usr/bin/kube-apiserver --logtostderr=true --v=0 --etcd-servers=http://10.57.50.161:2379 --insecure-bind-address=127.0.0.1 --secure-port=443 --allow-privileged=true --service-cluster-ip-range=10.254.0.0/16 --admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ServiceAccount,ResourceQuota --tls-cert-file=/etc/kubernetes/certs/server.crt --tls-private-key-file=/etc/kubernetes/certs/server.key --client-ca-file=/etc/kubernetes/certs/ca.crt --token-auth-file=/etc/kubernetes/tokens/known_tokens.csv --service-account-key-file=/etc/kubernetes/certs/server.crt
Kube-masterマシンからローカルマシンに証明書をコピーし、caルート証明書をインストールしました。 chrome/safariブラウザはcaルート証明書を受け入れています。 https://10.57.50.161/ui にアクセスしようとすると、「Unauthorized」が表示されます
Kubernetes UIにアクセスするにはどうすればよいですか?
Kubectlプロキシを使用できます。
構成ファイルを使用しているかどうかに応じて、コマンドラインで実行します
kubectl proxy
または
kubectl --kubeconfig=kubeconfig proxy
同様の応答が得られるはずです
127.0.0.1:8001での配信開始
ブラウザを開いて、
http://127.0.0.1:8001/ui/ (非推奨、 kubernetes/dashboard を参照)
http:// localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/ proxy /
ポートが一致することを確認する必要があります。
これはあなたがネットワークからアクセスできるという私のために働く
kubectl proxy --address 0.0.0.0 --accept-hosts '.*'
Apiserverの設定を確認し、ベアラートークン(有効なトークンは/etc/kubernetes/tokens/known_tokens.csv
にリストされます)またはクライアント証明書(/etc/kubernetes/certs/ca.crt
のCA証明書によって署名)を提示して、apiserverに証明する必要があります。クラスターへのアクセスを許可する必要があります。
https://github.com/kubernetes/kubernetes/issues/7307#issuecomment-96130676 MacでGKEクラスターのクライアント証明書を構成する方法を説明しています。
ベアラートークンを渡すには、値Bearer ${KUBE_BEARER_TOKEN}
を持つHTTPヘッダーAuthorizationを渡す必要があります。 curl here ;でこれがどのように行われるかの例を見ることができます。ブラウザでは、アドオン/プラグインをインストールしてカスタムヘッダーを渡す必要があります。
ダッシュボードにアクセスするためのQuick-n-Dirty(および安全でない)方法:
$ kubectl edit svc/kubernetes-dashboard --namespace=kube-system
これにより、ダッシュボード設定(yaml)がエディターに読み込まれ、編集できるようになります。
行を変更type: ClusterIP
からtype: NodePort
。
TCPポートを取得します。
$ kubectl get svc kubernetes-dashboard -o json --namespace=kube-system
Tcpポートのある行は次のようになります。
"nodePort": 31567
Kubernetesの新しいリリースでは、get svc
:
# This is kubernetes 1.7:
donn@Host37:~$ Sudo kubectl get svc --namespace=kube-system
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes-dashboard 10.3.0.234 <nodes> 80:31567/TCP 2h
行う kubectl describe nodes
ノードのIPアドレスを取得します。
テストに適しています。セキュリティが不足しているため、本番環境には適していません。
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml
kubectlプロキシ&
ローカルラップトップ(またはGUIにアクセスする場所)で次のコマンドを実行します
秘密鍵の取得kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | awk '/ ^ deployment-controller-token-/ {print $ 1}')| awk '$ 1 == "token:" {print $ 2}'
ダッシュボードを開きます http:// localhost:8877/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/ proxy /
エラーが発生した場合は、役割のバインドを実行します。
kubectl proxy --address=clusterIP --port 8001 --accept-hosts '.*'
を使用できます
apiサーバーはノードの6443ポートで既にアクセス可能ですが、https://:6443/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/ proxy /へのアクセスを許可していません
私はkubernetes ca certで署名されたクライアント証明書を生成し、pkcs12に変換してブラウザーに統合しました...このURLにアクセスしようとすると、ユーザーはURIへのアクセスが許可されていないと言います...