問題タブ [kind]
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 - ホスト VM の IP を介して VM で実行されているローカル kubernetes クラスターを公開する
ubuntu VM で実行されている種類の kubernetes クラスターがあります。kubernetes イングレス機能を有効にするためのドキュメントに従って、このクラスターを作成しました。
このクラスターには、内部で実行されているいくつかのサービスがあります。これらのサービスのうち、外部に公開したいサービスが 3 つあります。これらの 1 つは REST ベースのサービスで、その他は websocket 接続を使用します。
ホスト VM では、ドキュメントに従っていじった後、localhost をカールすることでこれらのサービスにアクセスできます。
これらのサービスを特定のインターフェイス (ens160) 経由で公開して、別のチームが構築しているクライアント側の自動化でこれらのサービスをヒットできるようにしたいと考えています。
私の最初の試みは、IP テーブルを使用して、80/443 で着信するトラフィックを 127.0.0.1 にマッピングすることでした。これは REST サービスでうまく機能します。
ただし、websocket 接続は確立されていません。
私にとって、この方法は「薄っぺらな」アプローチのように思えます。この kubernetes クラスターを「企業ネットワーク」に公開し、入ってくるパケットに対して DNAT を実行するより良い方法があるかどうか疑問に思っています。
私はこれについて間違った方法で進んでいますか?
ありがとう、マックス・サージェント
kubernetes - Kind Kubernetes クラスタにコンテナ ログがありません
ローカル VM でのセットアップと実行が簡単だったので、Kind k8sを使用して Kubernetes クラスターをインストールしました。Dockerも別途インストールしました。次に、標準出力にメッセージを出力するために構築した Spring ブート アプリケーションの Docker イメージを作成しました。その後、 kind k8sローカル レジストリに追加されました。この新しく作成したローカル イメージを使用して、kubectl apply -f config.yaml CLI コマンドを使用して kubernetes クラスターにデプロイを作成しました。同様の方法を使用して、fluentD コンテナーにマウントされるログを収集することを期待して、fluentdもデプロイしました。/var/log/containers
/var/log/containers/
シンボリックリンクが存在しないことに気付きました。ただし/var/lib/docker/containers/
、過去に作成された一部のコンテナ用のフォルダがあります。新しいコンテナー ID はいずれも存在しないようです/var/lib/docker/containers/
。
kubectl logs pod-name
ローカル ストレージにログが見つからなくても、実行するとコンソールにログが表示されます。
stackoverflow メンバーから提供された別のスレッドの回答に従って、すべてではなく一部の情報を取得できました。
次のコマンドを実行して、Docker が json ロギング ドライバーで構成されていることを確認しました。
docker info | grep -i logging
次のコマンド (上記のスレッドにあります) を実行すると、イメージ ID を取得できます。
kubectl get pod pod-name -ojsonpath='{.status.containerStatuses[0].containerID}'
ただし、Docker は種類のコントロール プレーンdocker inspect
によって管理されているため、想定しているようなイメージを認識していないため、Dockerイメージを検査するために使用することはできません。
フォーラムの専門家が、ログが書き込まれている場所を特定し/var/log/containers
、コンテナー ログにアクセスするためのシンボリック リンクを再作成するのを支援できるかどうかを評価します。
kubernetes - Pod は常に Kubernetes で保留中です
Pod のステータスは常に保留中です。ローカルで Kind を使用して Kubernetes を学習し、Pod を 1 つ上げようとしています。
describe からのイベントはありません。
ログなし。
Kubernetes システム ログ。
調査を続けるための提案はありますか?
kubernetes - 種類のk8sクラスターからsshuttle接続されたネットワークに送信トラフィックを転送する方法は?
localmachine で jumphost に対して sshuttle を実行しているため、ネットワークで実行されているサービスにアクセスできます (例: IP アドレス 192.168.220.4:1234)。sshuttle の実行中に curl http://192.168.220.4:1234を実行すると、必要な応答が返されます。
curl http://192.168.220.4:1234
同じローカル マシンで、展開した場所で実行されている種類の k8s クラスターと、192.168.220.4 から読み取ろうとするアプリケーションがあります (ポッドからの実行と同じ)。sshuttle が実行されていても、これは機能しません。
コマンドcurl http://192.168.220.4:1234
がポッドの境界を離れることさえなかったようです。同じポッドでcurlコマンドを実行したときにポッドでtcpdumpを実行しました。以下はtcpdumpからの出力です
sshuttle を介して localmachine からリクエストが機能するのに、同じマシンで実行されている k8s クラスターからは機能しないのはなぜですか?
curl http://192.168.220.4:1234
k8s 種類のクラスターのポッド内から実行するときに、トラフィックが sshuttle のトンネル/vpn を通過するようにするにはどうすればよいですか。