Kubernetesその1
概要
楽しくKubernetes(以降k8sと表記)を勉強していきます。
k8sとは
k8sとはgoogle社が開発したコンテナのオーケストレーションツール(システム全体の統括管理を行う)です。
k8sの仕組み
k8sは複数台のサーバ群から構成されており、“マスターノード"と"ワーカーノード"の2種類の用途に分類されます。
それぞれのノードの役割
マスターノード
マスターノードとはk8s全体のシステムを統括管理する"コントロールプレーン"と呼ばれるサーバ群を指します。
システム管理者はこのマスターノードに指示を出します。
k8sを統括管理するために下記の5つのコンポーネントがマスターノードに含まれています。
kube-apiserver
外部とのやり取りを行うのプロセスです。システム管理者がk8sの操作に使用する"kubectl"コマンドの指示する先が、このkube-apiserverになります。etcd
k8sの情報を全管理するデータベース。kube-controller-manager(kcm)
一連のk8sオブジェクトを処理する"コントローラ”(後ほど解説)と呼ばれるコンポーネントを統括管理、実行います。cloud-controller-manager(ccm)
k8sを運用するクラウドサービス(AWS(EKS)、Azure(AKS)、GCP(GKS))と連携し、クラウドサービス上に必要なモノ(サービス名は各クラウドサービスにより異なります)を作成する仕組みです。kube-scheduler
Podを各ワーカーノードに割り当てを行います。
ワーカーノード
ワーカーノードとはネットワークやストレージを構成し、実際にコンテナを動作させるサーバ群です。
ワーカーノード内ではコンテナやネットワーク、ストレージをPodという単位で管理しています。
システム管理者はワーカーノードへの操作を直接行うことは出来ません。
ワーカーノードの操作はマスターノードからのみ行えます。
ワーカーノードには下記の2つのコンポーネントが存在します。
kube-let マスターノードのkube-schedulerと連携し、ワーカーノード上にPodを配置、実行を行います。
また、実行中のPodに異常が発生していないかPodの状態を定期的に監視し、kube-schedulerへの通知を行います。kube-proxy ネットワークの通信をルーティングする仕組みです。
今回はここまで。次回はk8sオブジェクトについて紹介いたします。