問題タブ [flanneld]
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 - ポッドが kube-dns に到達できない
私はkubernetesの初心者です。kubeadm と virtualbox を使用して、1 つのマスターと 2 つのワーカー (worker1、worker2) を持つローカル クラスターをセットアップしました。コンテナ ランタイムとして containerd を選択しました。
私はネットワークの問題に直面しており、それが私を夢中にさせています。
DNS が解決されていないため、ポッドから外部アドレスに ping を実行できません
以下を使用してクラスターをセットアップしました。
スワップと SELinux は無効になっています。
フランネルを使用しています。
cat /usr/lib/systemd/system/kubelet.service.d/10-kubeadm.conf
主人:
ワーカー1:
マスターから kube-dns cluster-IP に到達できます。
しかし、ワーカーからはできません:
kubernetes の dnsutils ポッド ( https://kubernetes.io/docs/tasks/administer-cluster/dns-debugging-resolution/ ) を使用していくつかのテストを行いました。
(このポッドは worker1 にデプロイされていますが、worker2 でも同じ問題が発生します)
ノード間に接続があります。ただし、異なるノード上のポッドは互いに ping できません。例:
10.244.3.2 は worker1 からのみ到達可能で、10.224.4.2 は worker2 からのみ到達可能です。
私の推測では、kube-proxy に何か問題があると思われますが、それが何であるかはわかりません。
ポッド ログにエラーが表示されません。
助言がありますか?
ありがとう
編集:
解決した
Flannel は間違ったインターフェイスを使用していました。私のノードには 3 つのネットワーク インターフェイスがあるため、--iface で正しいインターフェイスを指定しました。
また、firewalld が DNS へのリクエストをブロックしていることに気付き、その追加を解決しました ( firewalld (Kubernetes) を無効にせずに Flannel を使用するにはどうすればよいですか):