問題タブ [kube-dns]

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 に答える
10188 参照

dns - クラスター外のクエリ用に kube-dns サービスを公開する方法は?

「kube-dns」サービスを公開して、Kubernetes クラスターの外部で照会できるようにしようとしています。これを行うために、「サービス」定義を編集して「タイプ」を「ClusterIP」から「NodePort」に変更しましたが、これは正常に機能しているように見えました。

ただし、ノード ポートでクエリを実行しようとすると、TCP セッションを取得できます (Telnet でテスト) が、DNS サーバーから応答を取得できないようです (dig でテスト)。

「kube-dns」Pod の各コンテナのログを確認しましたが、問題はありません。さらに、クラスター内から (実行中のコンテナーから) DNS をクエリすると、問題なく動作するように見えます。

以前に kube-dns サービスを公開しようとした人はいますか? もしそうなら、追加のセットアップ手順はありますか、それともデバッグに関するアドバイスはありますか?

サービス定義は次のとおりです。

0 投票する
2 に答える
2607 参照

proxy - iptables に REJECT ルールを挿入する KUBE_SERVICE

4 centos 7 ボックス、マスター、ミニオンで kubernetes を実行しています。flannel と skydns もインストールしています。フランネル オーバーレイの IP は 172.17.0.0/16 で、サービス クラスタの IP は 10.254.0.0/16 です。k8 クラスターで Spinnaker Pod を実行しています。私が見ているのは、Spinnaker サービスがお互いを見つけることができないということです。各ポッドは 172.17 スライスから IP を取得し、その IP を使用して任意のノードからポッドに ping を実行できます。ただし、サービス自体は cluser ip を使用しており、相互に通信できません。Kube-proxy がこのトラフィックを転送する必要があるため、iptable ルールを確認すると、次のように表示されます。

kube-proxy が転送できないようです。kube-proxy の起動時にエラーはありません。

私は何が欠けていますか?

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

docker - docker 上の Kubernetes は、空のサービス アカウントとトークンのないコンテナーを作成し、コンテナーのクラッシュと再起動につながります

1.3.0 および 1.4.0-alpha.0 まではまだ同様の問題が発生しています。

私の場合 (docker ベースのセットアップ)、trusty または kubedns のいずれかが API サーバーから無許可になります。

奇妙なことに、パス /var/run/secrets/kubernetes.io/serviceaccount の下のインスタンス内にシークレットが存在しないことがわかります

それらはノードとプロキシインスタンスにあるように見えますが

  • シークレットを削除し、ポッドを削除してから再作成しても効果はありません
  • フォルダーのアンマウントと削除後にクラスターを再起動しても効果はありません

当然、これにより kubedns が起動できなくなります。以下にログイン

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

containers - Kubernetes でのエンドポイントのフラッピング

Kubernetes クラスター内のサービスに到達できません。確認したところ、サービスでエンドポイントを利用できません。さらに確認すると、エンドポイントが値と null の間で変化し続けることがわかりました。他の投稿で提案されているように、ラベルセレクターをチェックしました。ポッドが立ち上がっています。コンテナーは、サービスのターゲット ポートでリッスンしています。ここで他に何が起こっているのですか。

さらに更新。kube-controller-manager ログに以下のエラーが表示されます。E0810 20:02:21.887677 10451 nodecontroller.go:771] ノードの更新中にエラーが発生しました: クライアント: 応答が無効な json です。エンドポイントは、有効な etcd クラスター エンドポイントではない可能性があります。

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

kubernetes - Kubernetes PetSet DNS が機能しない

elasticsearchname ==と serviceName ==の Kubernetes PetSet がありesます。elasticsearch-0ポッドを作成し、予想どおり、や などの名前が付けられelasticsearch-1ます。ただし、DNS は機能していないようです。elasticsearch-0.es解決しません (解決しませんelasticsearch-0.defaultなど)。生成された srv レコードを見ると、予測可能ではなくランダムに見えます。

誰にもアイデアはありますか?


詳細

実際の PetSet と Service の定義は次のとおりです。

0 投票する
2 に答える
1087 参照

kubernetes - kube-dns が機能しない

クラスター (Centos 7) を作成し、kube-dns で rc をデプロイしました。クラスターは正常に動作しますが、kube-dns はログにエラーを出力します。

apiserver: ### # kubernetes システム構成 # # 次の値は、kube-apiserver の構成に使用されます #

マスター構成ファイル:

どうなるか知ってる人いますか?)

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

dns - kubernetes ノードの観点から、サービスの名前を IP に解決する方法は?

GCE で実行されている kubernetes クラスターがあります。

2 つのポッド glusterfs-server-1があり、glusterfs-server-2それが私の gluster サーバーであるセットアップを作成しました。

2glusterfsdデーモンは正​​しく通信し、レプリケートされたボリュームを作成し、それらにファイルを書き込み、両方のポッドで正しくレプリケートされたファイルを確認できます。

また、2 つの glusterfs ポッド間のトラフィックのバランスを自動的に調整する1 つのサービスも呼び出しています。glusterfs-server

別のポッド内から発行できmount -t glusterfs glusterfs-server:/myvolume /mnt/myvolume、すべてが完全に機能します。

今、私が本当に望んでいるのはglusterfs、コンテナーを作成するときに、.yaml ファイル内でボリューム タイプを使用できるようにすることです。

...truncated... spec: volumes: - name: myvolume glusterfs: endpoints: glusterfs-server path: myvolume ...truncated...

残念ながら、これは機能しません。なぜそれが機能しないのかを知ることができました:

kubernetes nodeに直接接続する場合、 を発行してmount -t glusterfs glusterfs-server:/myvolume /mnt/myvolumeも機能しません。これは、ノードの観点からglusterfs-serverは IP アドレスに解決されないためです。(つまり、getent hosts glusterfs-server何も返されません)

また、glusterfs の仕組みにより、サービスの IP を直接使用しても失敗します。これは、glusterfs が最終的に名前を解決しようとするglusterfs-server(そして失敗する) ためです。

さて、これが問題であることを確認するresolv.confために、ポッドとサービスの IP アドレスが正しく解決されるように、(kube-dns の IP アドレスと検索ドメインを入力して) ノードを編集しました。その後、ようやくmount -t glusterfs glusterfs-server:/myvolume /mnt/myvolumeノードで問題なく発行できました。その後、glusterfs ボリューム (上記の PodSpec を使用) を使用してポッドを作成することもできました。

今、私は自分のノードを変更することresolv.confはひどい考えだと確信しています.2つの異なる名前空間の2つのサービスが同じ名前(たとえば、glusterfs-service)を共有している場合、名前空間の概念を持つkubernetesは、にgetent hosts glusterfs-service住んでいる2つの異なるIPに解決されます2 つの異なる名前空間。

だから私の質問は:

ノードがポッド/サービスの IP アドレスを解決できるようにするにはどうすればよいですか?