問題タブ [project-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.

0 投票する
1 に答える
481 参照

docker - POD のホストでのみ到達可能な Kubernetes サービス

KUBEADM (CentOS 7 を実行する Intel NUC を使用した buildt) がインストールされた 3 ノードのベアメタル クラスターがあります。

マスター ノードには 2 つの異なるネットワーク インターフェイスが提供されます。1 つは外部アクセス用で、もう 1 つはクラスター ローカル ネットワークの DHCP サーバーとして構成されます。2 つのネットワーク間の IP 転送とマスカレードは、次の iptables ルールによって有効になります。

iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -i {{lan_interface_name}} -j ACCEPT iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -t nat -A POSTROUTING -o {{wan_interface_name}} -j MASQUERADE iptables -A FORWARD -i {{wan_interface_name}} -o {{lan_interface_name}} -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -I FORWARD -i {{lan_interface_name}} -o {{wan_interface_name}} -j ACCEPT

さらに、クラスター内のすべてのノードの docker インターフェースと lan インターフェース間の転送も有効にしました

iptables -I INPUT -i docker0 -j ACCEPT iptables -t nat -A POSTROUTING -o {{lan_interface_name}} -j MASQUERADE iptables -I FORWARD -i {{lan_interface_name}} -o docker0 -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -I FORWARD -i docker0 -o {{lan_interface_name}} -j ACCEPT

iptables に問題がないことを確認するために、デフォルトですべてのトラフィックを有効にしました

iptables -P OUTPUT ACCEPT iptables -P INPUT ACCEPT iptables -P FORWARD ACCEPT

これは /etc/sysctl.conf ファイルですが、

net.ipv4.ip_forward=1 net.bridge.bridge-nf-call-iptables=1

kubeadm の指示に従って CALICO ( https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/ ) を使用してクラスターを起動しましたが、(kube-dns でさえすべての POD から到達可能であることを除いて) すべてが正常に機能しているようですすべてのノードで) 公開されたサービス用。

テストのためだけに、nginx デプロイメントを作成し、ノードポートを介して公開しました。 kubectl get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 30m nginx NodePort 10.96.227.49 <none> 80:31242/TCP 22m

POD の同じノード内でクラスター IP をカールさせようとすると、すべて問題ありませんが、別のノードでカールさせようとすると、カール要求のタイムアウトが発生します。

どんな助けでも本当に感謝しています。

0 投票する
0 に答える
212 参照

kubernetes - ネットワーク ポリシー ホワイトリスト IP

IBM Cloud で Kubernetes を使用しており、イングレスに適用されるホワイトリスト ポリシーを作成しようとしています。

kubernetes ポリシーを作成するために calico をインストールしました https://console.bluemix.net/docs/containers/cs_network_policy.html#network_policies

このチュートリアルに従ってください https://console.bluemix.net/docs/containers/cs_tutorials_policies.html#lesson2

IP ソースの保存も有効にしました: https://console.bluemix.net/docs/containers/cs_ingress.html#preserve_source_ip

ポリシーがロードバランサーに直接適用された場合はうまく機能しますが、イングレスに適用された場合は機能しません。

これは、着信 IP アドレスがイングレスの内部 IP アドレスにマッピングされているためです。

このため、ロードバランサーは IP を許可されたものとして認識せず (イングレスの IP アドレスがホワイトリストにないため)、接続がブロックされます。

以下に、シナリオのスキーマを示します。 ここに画像の説明を入力

この問題を解決するにはどうすればよいですか?