問題タブ [kubespray]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
kubernetes - 一部の Kubernetes コンテナーから同じクラスター内の他のコンテナーへのホストへのルートがない
これは、calico を使用した Kubespray のデプロイです。プロキシがあるという事実を除いて、すべてのデフォルトはそのまま残されています。Kubespray は問題なく最後まで実行されました。
Kubernetes サービスへのアクセスが失敗し始め、調査の結果、 corednsサービスへのホストへのルートがありませんでした。IPによるK8Sサービスへのアクセスは機能しました。他のすべては正しいように見えるので、機能するクラスターが残りますが、DNS はありません。
以下に背景情報をいくつか示します。
CoreDNS ポッドの 1 つの IP を明示的に定義する際の出力:
Kubernetes API への telnet が機能することに注意してください。
kube -proxy ログ: 10.233.0.3 は、coredn のサービス IP です。最後の行は INFO ですが、気になるようです。
すべてのポッドはクラッシュ/再起動などなしに実行されており、それ以外の場合はサービスが正しく動作します。
IPVS は正しいようです。CoreDNS サービスはそこで定義されています。
ホスト ルーティングも正しいようです。
この同じクラスターを、ipvs の代わりに iptables を使用して、flannel と calico を使用して別の環境に再デプロイしました。一時的にデプロイした後、docker http プロキシも無効にしました。どちらも違いはありません。
また: kube_service_addresses: 10.233.0.0/18 kube_pods_subnet: 10.233.64.0/18 (これらは重複しません)
この問題をデバッグするための次のステップは何ですか?
kubernetes - サーバーが要求されたリソースを見つけることができなかった Kubernetes ダッシュボード
vagrant を使用してhttps://github.com/kubernetes-sigs/kubesprayでkubernetes クラスターをインストールしました。インストールは成功しました。
次に、ダッシュボードを呼び出して、次のようにダッシュボード トークンを生成します。
トークンを取得し、kubectl proxy
ステートメントを使用して、ダッシュボード サービスを開始します。
次に、URL http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/#!/loginを呼び出してトークンを入力すると、次のようになります。
私は何を間違っていますか?
わからないこと、解決方法。
kubernetes - Kubernetes ダッシュボード - ログイン後の不明なサーバー エラー
Kubespray を介して Kubernetes を正常にデプロイしましたが、すべて正常に動作しているようです。kubectl を介してクラスターにアクセスし、ノード、ポッド、サービス、シークレットなどを一覧表示できます。新しいリソースを適用することも可能で、ダッシュボード エンドポイントはダッシュボードのログイン ページを取得します。
さまざまなサービス アカウント (デフォルト、kubernetes-dashboard、kubernetes-admin など) のトークンを使用してログインしました...ログインするたびに、kubespray ダッシュボードの警告禁止ポップアップで説明されているのと同じポップアップが表示されます。
そこで、説明したように、デフォルトのサービス アカウントに clusterrolebinding を適用しました。デフォルトのアカウント トークンでログインすると、
その後、ログインページにリダイレクトされるボックス。経由でダッシュボードに接続した場合と同じ動作ですkubectl proxy
。アクセスは、パブリック クラスター IP を介した HTTPS と、プロキシを介した HTTP です。
Kubernetes 1.16.2 と最新の Kubespray マスター コミット 18d19d9e を使用しています
編集:クラスターを破棄して再プロビジョニングし、Kubespray でプロビジョニングされた新しいインスタンスを取得して、すべてのステップを決定論的にし、さらに情報を追加しました...
kubectl -n kube-system logs --follow kubernetes-dashboard-556b9ff8f8-jbmgg --
ログイン試行中に私に与えます
ダッシュボードを機能させるための奇妙な回避策を見つけましたが、これは本番環境では使用できません。おそらく誰かがこれを説明できます:
- たとえば、サービス アカウントを取り上げます
kube-system:default
(注:cluster-admin
この時点では割り当てられていません)。 - そのトークンを取得し、それでログインします
- ダッシュボードには明らかに「禁止ポップアップ」が表示されます
- ログインしたまま、実行します
kubectl create clusterrolebinding default-admin --clusterrole cluster-admin --serviceaccount=kube-system:default
- ダッシュボード セッションを保持しているブラウザ タブを更新すると、すべてが正しく表示されます。
したがって、ログアウトして再度ログインすることはできません。常にクラスターロールバインディングを削除し、ログインしてから再度クラスターロールバインディングを適用する必要があります。
これは kubespray でプロビジョニングされたクラスターに強く関連しているようです。kubespray でこれを再現できる人はいますか?