クラスタ内の通信について
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を使ってサービスを開発してみたい方にとって最初のよい手助けとなると思います。是非読んでみてください。
髙妻智一
最新記事 by 髙妻智一 (全て見る)
- Polkadot(Substrate)のアドレスとトランザクションについて - 2023-03-09
- 【無料公開】「Goで始めるBitcoin」3章 Bitcoinノードとの通信 技術書典8 - 2020-03-08
- エンジニアがゼロから技術ブログを書くための方法をまとめました - 2019-05-25
コメントを残す