問題タブ [calico]
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.
docker - Kubernetes Nodeport はソース IP を保持します
3 つのノードで構成される小さな Kubernetes on prem クラスター (Rancher 2.3.6) があります。クラスター内のデプロイメントは、外部アプリケーションによって動的にプロビジョニングされ、レプリカ数は常に 1 に設定されます。これらはステートフルなアプリケーションであり、高可用性は必要ないためです。
アプリケーションは、ランダム ポートと ExternalTrafficPolicy が Cluster に設定された NodePort サービスによってインターネットに公開されます。そのため、ユーザーが 3 つのノードのいずれかを要求すると、k8s プロキシはその要求をルーティングし、アプリケーション ポッドを使用して正しいノードに s-NAT します。
この時点まで、すべてが正常に機能します。
問題は、リクエストの送信元 IP に依存するアプリケーションを追加したときに始まりました。s-NAT は要求 IP を内部 IP に置き換えるため、このアプリケーションは正しく機能しません。
サービスのExternalTrafficPolicyをローカルに設定すると、s-natingが無効になることはわかっています。ただし、すべてのポッドに実行中のアプリケーションのインスタンスがあるわけではないため、これはアーキテクチャにも影響を与えます。
元のクライアント IP を保持しながら内部ルーティングを利用する方法はありますか?そのため、リクエストがどのノードに到達するかを心配する必要はありません。
kubernetes - calico をアンインストールした後、新しいポッドがコンテナー作成状態のままになる
calico をアンインストールした後、kubectl -f calico.yaml で、クラスター内に新しい Pod を作成できません。クラスター内の新しいポッドはすべて、コンテナー作成状態のままです。Kubectl describe は以下のエラーを示します:
Warning FailedCreatePodSandBox 2m kubelet, 10.0.12.2 Failed create pod sandbox: rpc error: code = Unknown desc = [failed to set up sandbox container "f15743177fd70c5eabf70c60be5b8b354e5346837d1b5d59bf99d1d1b5d6416c" network for pod "test-9465-768b57b5df-fv9d4": NetworkPlugin cni failed to set up pod "test-9465-768b57b5df-fv9d4_policy-demo" network: error getting ClusterInformation: connection is unauthorized: Unauthorized, failed to clean up sandbox container "f15743177fd70c5eabf70c60be5b8b354e5346837d1b5d59bf99d1d1b5d6416c" network for pod "test-9465-768b57b5df-fv9d4": NetworkPlugin cni failed to分解ポッド「test-9465-768b57b5df-fv9d4_policy-demo」ネットワーク: ClusterInformation の取得中にエラーが発生しました: 接続が許可されていません: 許可されていません]
kubernetes - Kubernetes - コンテナー上の Calico CrashLoopBack
数日前に K8S の実験を始めたばかりで、ネットワーキング、サービス メッシュなどに特に重点を置いて K8S を学習しようとしています。
kubeadm でインストールされた Centos 7 と K8S を搭載した VM で、2 つのワーカー ノードと 1 つのマスターを実行しています。
フランネルのデフォルト CNI。インストールは問題なく、ネットワーク以外はすべて機能していました。コンテナなどをデプロイできたので、たくさんのコントロール プレーンが動作していました。
ただし、ネットワークは正しく機能せず、同じワーカー ノード内のコンテナー間でも同様です。私はすべての通常の容疑者、veth、IP、MAC、ブリッジを単一のワーカーでチェックしましたが、すべてがチェックアウトされているように見えました...たとえば、正しいブリッジ、つまり cni0 上の MAC、IP アドレスの割り当てなど。 、ARPキャッシュが読み込まれているのがわかりますが、pingはまだ機能していません....すべてのFWを無効にし、IP転送を有効にしました.IPtablesの専門家ではありませんが、問題ないように見えました.....ワーカーノードシェルにログインしたときbusybox コンテナーに ping を実行しましたが、互いに ping を実行できませんでした....
この時点で 1 つの質問があります。flannel がインストールされている場合でも docker0 ブリッジがまだ存在するのはなぜですか? またはそれに関連する依存関係があるのでしょうか? コンテナーの veth が docker0 ブリッジに接続されていることを示していることに気づきませんでしたが、dockerbrid0 はダウンしていました... しかし、この Web サイトをたどると、検証の別の方法が示され、cni0 に接続されている veth が表示されます。これは非常に混乱し、イライラします。 ....
フランネルを使って実験していたのでフランネルをあきらめ、キャリコを試してみることにしました....
Calico サイトのインストール手順に従いました... Flannel の整頓手順が完全に明確ではありませんでした。これがどこに文書化されているかわかりませんか?... これは、悪化した場所です...
Calico コンテナーでクラッシュ ループが発生し始め、coredns が作成を停止し、calico の活性の問題を報告しました ....そして、これが私が立ち往生している場所です.........そして、助けが欲しいです........
私はウェブで多くのことを読んで試しましたが、多くの問題が発生している可能性があるため、いくつかの問題を修正した可能性がありますが、本当に助けていただければ幸いです....
=== インストール情報といくつかの出力...
いくつかの質問...
- coredns 用のコンテナの作成.....これは、Calico のインストールの成功に依存していますか...関連する問題ですか....それとも、coredns のインストールは CNI のインストールとは無関係に機能する必要がありますか?