カッティングボード

カルマをカットしてます

kubernetesのContainer IPの活用法

はじめに

KubernetesのContainer IPはほとんど使うことがないと思います.

再起動するたびに変動するものなので,通常であればCluster IPの方を使いますよね.

Kubernetesのdnsから引けてくるIPはCluster IPなので,Service設定をしてちゃんとKubernetes使ってる人だったらCluster IPを利用していると思います.

Cluster IP

Cluster IPは各コンテナごとに振られたIPではないため,コンテナ等を再起動したとしても変動しないIPです.

まぁ基本的に固定されているIPですし,dnsから引けてくるので利用しやすいIPです.

コンテナのIPではないのにコンテナと通信することができるのはkube-proxyがいい感じにしてくれてるからです.

正直kube-proxyの詳しい挙動については勉強不足な部分が多いのでどうやって通信を繋いでるかとかに関しては詳細は記述しないです.

kubernetes1.9では,Cluster IPからはServiceで公開されているポートにしかアクセスできません.

Container IP

各コンテナに対して振られているIPのことです.

このIPのネットワークはKubernetesで利用しているオーバーレイネットワーク等です.

なので別ノードで展開されているコンテナだったとしても,Container IPでアクセスすることができます.

Container IP経由でアクセスすることで,コンテナ内でポートへのアクセス等を制御していない限りはどのポートに対してもアクセスすることができます.

Serviceで公開していないポートに対してもアクセスすることができるので,動的にポートが変わってしまうサービスだったりした際にはContainer IPを用いることで容易にネットワークの問題を解決できるかもしれないです.

まとめ

Container IPからだったらどのポートに対してもアクセスできる.

まぁ正直裏技的な部分があったり,IPが変わって困ってしまうこととかもあるのでその辺は考慮してください.