Kubernetesのサービス周りのトラブルシュート

 自前で構築したKubernetesクラスタでサービス(serivces、svc)関連がうまく動かない場合、原因としてfirewall関連の設定が不適切だったということがよくあります。kube-dns関連のトラブル(kube-dns Podが起動しないなど)もこれが原因であることがよくあります。

 そういった場合、とりあえずiptablesが正しく設定されているか、またクラスタ内からapiserverのbind-addressで指定したアドレスの8080番および6443番ポート)にアクセスできるよう設定しているかを確認してみましょう。

 また、Kubernetesのパケットは複雑な経路でやってくるので、インターフェイス単位でアクセス許可を指定した場合うまく動かない場合があります。そのため、たとえばfirewalldを利用している場合、コンテナに割り当てられるネットワーク(たとえば172.17.0.0/16)をinternalゾーンに追加したうえで8080/tcpおよび6443/tcpを許可する、もしくはtrustedゾーンに追加する、といったようにネットワーク単位で設定した方が確実です。