#はじめに
30代未経験からエンジニアを目指して勉強中のYNと申します。
インフラ初学者の私ですが、Kubernetes the hard way
を進めるにあたって、インフラに関する基本的な知識を体系的に学ぶことができました。
そこで、初学者目線での学びなどを本記事にまとめておきたいと思います。
#目次
こちらをご覧ください
#CNIとDNSアドオンによりノードを跨ぐPodネットワークを実現する
kubernetesクラスタの中のPodのネットワークは下記のようにkube-proxy
とCNI
とDNS
が連携することで実現しています。
- CNIはノードを跨ぐネットワークを築き、Pod間通信を可能にする
- CNIによってPodに付けられたIPアドレスを、core-DNSで名前解決する
- kube-proxyが展開するserviceに対して送られたリクエストを、どのPod宛に振り分けるかをkube-proxyが決定する
※ Podのネットワークについて、こちらの記事が分かりやすく解説しているので、ぜひ一読ください。
ここからは、下図のように、それぞれのworkerノードの中にstatic-Podとしてcore-DNS
とWeave
をデプロイし、ノードを跨ぐ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