Kubernetes the hard way を初学者目線で解説する ~ #11 Podネットワークの構築


はじめに

30代未経験からエンジニアを目指して勉強中のYNと申します。
インフラ初学者の私ですが、Kubernetes the hard wayを進めるにあたって、インフラに関する基本的な知識を体系的に学ぶことができました。
そこで、初学者目線での学びなどを本記事にまとめておきたいと思います。

目次

こちらをご覧ください

CNIとDNSアドオンによりノードを跨ぐPodネットワークを実現する

kubernetesクラスタの中のPodのネットワークは下記のようにkube-proxyCNIDNSが連携することで実現しています。

  • CNIはノードを跨ぐネットワークを築き、Pod間通信を可能にする
  • CNIによってPodに付けられたIPアドレスを、core-DNSで名前解決する
  • kube-proxyが展開するserviceに対して送られたリクエストを、どのPod宛に振り分けるかをkube-proxyが決定する

※ Podのネットワークについて、こちらの記事が分かりやすく解説しているので、ぜひ一読ください。

Kubernetesネットワーク 徹底解説

ここからは、下図のように、それぞれのworkerノードの中にstatic-Podとしてcore-DNSWeaveをデプロイし、ノードを跨ぐPodのネットワークを実現します。

Provisioning Pod Network

CNIプラグインのインストール

worker-1.node/worker-2.node
wget https://github.com/containernetworking/plugins/releases/download/v0.7.5/cni-plugins-amd64-v0.7.5.tgz
worker-1.node/worker-2.node
sudo tar -xzvf cni-plugins-amd64-v0.7.5.tgz --directory /opt/cni/bin/

Weave-Podのデプロイ

master-1.node
kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"

Deploying the DNS Cluster Add-on

master-1.node
kubectl apply -f https://raw.githubusercontent.com/mmumshad/kubernetes-the-hard-way/master/deployments/coredns.yaml