問題タブ [kubectl]
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.
amazon-web-services - NodePort サービスが AWS で期待どおりに機能しない (おそらく IAM ELB 権限が原因)
問題
Kubernetes クラスターで のタイプのサービスを作成しようとしていますNodePort
が、期待どおりに動作しません。マスター ノードで使用されている IAM ロールの ELB 権限を無効にしたことが原因であると思われます。ELB パーミッションは にとって重要ではないと思いますNodePort
が、エラー メッセージが表示されるので、これを考えさせられます。私は何か間違ったことをしていますか?これは他の人が以前に見た既知の問題ですか?
試み
NodePort
ノードのパブリック IP と指定されたポートのいずれかでサービスにアクセスできることを期待して、タイプのサービスをクラスターにデプロイしましたが、できません。1 つのマスター ノードと 2 つの非マスター ノードがあり、マスター ノード以外のプロセスはポート 30095 (割り当てられたNodePort
) にバインドされていません。マスターに SSH 接続し、さまざまな方法でそのポートをカールしても何もしません (curl
ハングするだけです)。サービスに関連付けられたエンドポイントのカールは正常に機能します。kubectl describe
サービスでは、ロード バランサーの作成中に何らかのエラーが発生したことが示されていますが、なぜそれが行われるのかわかりません。
マスター ノードで使用される IAM ロールが ELB の操作を実行できないように具体的に無効にしたことを繰り返します。私の Kubernetes クラスターを使用している開発者が、私のアカウントで ELB をスピンアップしたり、私のアカウントで AWS リソースを作成するようなことをしたりしたくありません。
実結果
サービスに関する情報 (ローカル ワークステーションから実行されるコマンド) --次
/li>CreatingLoadBalancerFailed
の出力のエラーに注意してkubectl describe service
ください。非マスターノードのポートにバインドされたプロセスを探します:
/li>マスターノードのポートにバインドされたプロセスを探しています:
/li>サービスをカールしようとしています(ハングするだけです):
/li>マスター ノードからのエンドポイントのカール (動作するため、ポッドは正常に動作しています):
/li>
期待される結果
サービスに割り当てられNodePort
た30095
.
追加の詳細:
/li>$ kubectl version
GitHub の問題: https://github.com/kubernetes/kubernetes/issues/39214
- メーリング リストの投稿: https://groups.google.com/forum/#!topic/kubernetes-dev/JNC_bk1L3iI
kubectl - 環境変数を使用して kubectl を認証する方法は?
認証するために私が見つけることができる唯一の2つの方法は、新しい認証コンテキストを作成することです。
コマンドラインオプションを使用して、例えば
--server
環境変数を使用して およびその他の認証オプションの値を設定する方法はありますか?
bash - 名前付きパスの kubectl jsonpath 式
次のような 2 つの名前付きポートで kube サービスを実行しています。
「http」ポートのみを含む出力を取得しようとしています:
ここのチートシートで示唆されているようにテスト式を追加する場合を除いてhttp://kubernetes.io/docs/user-guide/kubectl-cheatsheet/名前にエラーが発生します
authentication - 別のオプションで Kubernetes API サーバーを再起動する
私は Kubernetes とクラスターにかなり慣れていないので、これは非常に簡単かもしれません。
このガイドkubeadm
に従って、5 つのノードを持つ Kubernetes クラスターをセットアップしました。いくつか問題がありましたが、最終的にはすべてうまくいきました。そこで、 Web UI (Dashboard)をインストールしたいと思います。そのためには、認証を設定する必要があります。
これは、apiserver がユーザー名とパスワードによる認証を許可するように設定されている場合にのみ機能することに注意してください。これは現在、一部のセットアップ ツール (kubeadm など) には当てはまりません。認証を手動で構成する方法については、認証管理者のドキュメントを参照してください。
それで、ドキュメントの認証ページを読む必要がありました。そして、 Static Password Fileを介して認証を追加することにしました。そのためには、オプション--basic-auth-file=SOMEFILE
を Api サーバーに追加する必要があります。
私がやるとps -aux | grep kube-apiserver
これが結果なので、すでに実行中です。( を呼び出すときに使用するので、これは理にかなっていますkubectl
)
私が持っているいくつかの質問:
- では、これらすべてのオプションはどこに設定されているのでしょうか?
- このプロセスを強制終了し、必要なオプションで再起動できますか?
- システムを再起動すると開始されますか?
kubernetes - 長時間実行される対話型セッションを許可するように kubernetes を構成する方法は?
v1.5.1
ここで機能を使用して実行する際に問題が発生しましたkubectl run/exec -i --tty
。
データの送信中に接続が中断されることはありません。そのため、ときどき何かを出力するスクリプトを使用してインタラクティブなコンテナー セッションを起動すると、機能しているように見えます。
それに基づいて、自分の操作なしでコンテナー セッションを継続するための厄介な回避策を作成しました。これらのセッションが途中で終了するのは本当に厄介です。実行中の運用コンテナにアタッチする場合に備えて、クリーンアップする必要があるガベージを残します。
回避策 (バックグラウンド プロセスとして 59 秒ごとにスペース文字を STDERR に出力します):
このようなスクリプトを起動しない場合の次の出力を参照してください。 これは、インタラクティブ セッションが 2 分以内に途中で終了することを示しています。
この機能を利用して実行中のアプリケーションやコンテナーのインストールをデバッグしている場合、これは非常に面倒です。
このGithub Issueから再投稿します。