コンテナ実行基盤「Kubernetes」の構成要素とエコシステムを解説――ネットワーク、シークレット管理の仕組み:コンテナ実行基盤「Nomad」をKubernetesと比較検証(2)(1/3 ページ)
コンテナオーケストレーションツールとして知られる「Kubernetes」とHashiCorpが提供する「Nomad」を比較検証する本連載。第2回はKubernetesを用いたクラスタ構築の手順やKubernetesの構成要素についてネットワーク、シークレット管理を中心に解説します。
Kubernetesクラスタの構築にかかる時間はどれくらい?
コンテナ実行基盤である「Nomad」の仕組みや構造を解説する前に、コンテナ実行基盤のスタンダードとして注目されているKubernetesの仕組みや内部構造を解説します。なお今回はAWS(Amazon Web Services)でkubeadmを利用してKubernetesクラスタを構築するのにどれくらいのステップと時間が必要かを確認しました。
検証内容について
AWS EC2でUbuntu 20.04 LTS AMIから作成したVM(仮想マシン)にKubernetesクラスタを構築しました。2021年6月時点の内容になります。
クラスタ構築の手順は以下の通りです。
- CNIプラグインインストール
- ネットワーク関連の設定
- コンテナランタイムインストール
- kubelet, kubeadm, kubectlインストール
- クラスタ作成
- CNIインストール
- CSIインストール
- コントロールプレーン追加
- ワーカーノード追加
公式ドキュメントに記載されている順番で、1〜9までのステップで5分かかることなく構築できました。実行したコマンドラインの内容は弊社ブログに投稿していますので、参考にしてください。
Kubernetesのネットワークの構成要素
Kubernetesのネットワークは幾つかある概念により構成されています。登場するネットワークとコンポーネントが複数存在するうえに、CNI(Container Network Interface)によるカスタマイズの幅が広いため、やや複雑に感じられるかもしれません。
Node Network
Kubernetesをホストするマシンが属しているネットワークです。
Cluster Network
Pod同士が通信するためのネットワークです。
Service Network
クラスタ内仮想ネットワークです。Service(※)を作成すると、このネットワークのセグメントに仮想IPが割り当てられます。
※ネットワークにおける「Service」とはKubernetesのServiceリリースのことを指します。
CNI Plugin
さまざまな実装が存在しておりkubeletのプラグインとして動作します。主にPodのIP管理とクラスタネットワークにPodを参加させる役割を担います。
Service to Pod
kube-proxyがServiceの変更をウォッチしておりiptablesなどをServiceの要件に合うよう設定します。それによりServiceからPodへの通信、ロードバランシングなどを実現しています。
Pod to Pod
CNIがPodにIPを割り当てます。著者が知る限り、ほとんどの場合Node NetworkとCluster Networkは異なるので、ネットワークパケットのカプセル化やルーティングなどの方法を使い、Cluster Network内のPod同士が通信できるようにCNIを設定します。
Copyright © ITmedia, Inc. All Rights Reserved.