KubernetesのServiceに外部IPを設定してPodからアクセスする




クラスタ内の通信について

Kubernetesのクラスタ内の通信についてわからなことだらけだったのでまとめて残して置きたいと思います。

下記はKubernetes Cluster内のServiceとPodの通信経路をまとめたものです。順番に説明していきます。

Pod同士のアクセス

クラスタ内のPod同士は配置されたnodeが違ってもお互いにアクセスすることができます。通信にはPodに割り当てられたInternal IPでアクセスできます。

このInternalIPはPodが起動されるたびに異なるものが割り当てられるので注意が必要です。

PodとServiceのアクセス

②と④の矢印はそれぞれ異なる方法でアクセスしています。

まず一般的な④についてですが、ここではPodに指定されたLabelを使用してKubernetesが自動でアクセスを割り振っています。ServiceとPodを作成する設定ファイルにIPの指定は必要ありません。

もうひとつの②では、外部IPを使用します。外部IPにはグローバルとリージョンという2つの種類があります。

今回はリージョンのIPアドレスをServiceに設定します。設定方法はServiceを作る設定ファイルのLoadBalancerIpに設定するだけです。

自分はここでグローバルの外部IPを設定していて、Podからアクセスできなくて時間を潰してしまったので気をつけてください。

Podとnodeのアクセス

Podはnodeにもアクセスすることができます。nodeもただのインスタンスなのでアクセスできて当然ではありますね。いまのところこのアクセスでの使い道がわからないので詳しい人がいたら教えてほしいです。

まとめ

Kubernetesは便利ですがブラックボックスなとこが多いので今後も学んだことを少しずつまとめていきたいと思います。

おすすめ書籍

Dockerの使い方から説明されているので初心者の方も安心して学べる書籍です。

Kubernetesに関してはPod, Service, Deploymentなどを順を追って説明し、実際に動かすところまでを解説しているので非常に実践的な内容となっています。

これからKuebernetesを使ってサービスを開発してみたい方にとって最初のよい手助けとなると思います。是非読んでみてください。

The following two tabs change content below.

髙妻智一

2013年CyberAgent新卒入社 スマホゲームを作る子会社に所属し、サーバーサイドのエンジニアを担当。2年目の終わりから新規子会社の立ち上げに参加し、サーバーサイドのエンジニアリーダーとしてサービースのリリースから運用までを担当。 2018年仮想通貨のスマホウォレットを提供するGinco Incにブロックチェーンエンジニアとして入社。






よく読まれている関連記事はこちら




コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です