Kubernetesのお勉強~2日目~

今日やったこと

Udemy:kubernetes入門

学んだこと

  • Container

    • アプリケーションを独立して実行する入れ物
  • Container Orchestration

    • コンテナを複数のホストマシン上で運用する際に必要になるデプロイメント、スケーリング、スケジューリングなどを統合的に管理する技術のこと
  • Kubernetes Cluster

    • Control Plane
      • kube-apiserver:内部・外部とやり取りするAPIサーバ
      • etcd:Kubernetes Clusterの状態を保存しておくためのキーバリューストアのDB
      • kube-scheduler:アプリケーションをどのWokerNodeで実行するのかスケジュールする
      • kube-controller-manager:理想状態と現状を比較し違いがある場合には理想状態に近づけようとする
      • cloud-controller-manager:クラウドプロバイダーのAPIと連携してKubernetes Clusterがクラウドプロバイダーのリソースを管理できるようにする(ローカルやオンプレでは必要ない)
    • Woker Node
      • kubelet:Control Planeと通信しNodenのContainerを起動/停止、またその情報をControl Planeに伝える
      • kube-proxy:NodeのNetworkのRuleを管理している
  • Kubectl:指定したKubernetes Clusterのkube-apiserverのクライアントとして働く

    • [e.g.]kubectl get podを叩く > kube-apiserverにリクエストが送られる > 結果をテーブル構造で表示

Kubernetes Architectureを何となく理解

  • 理想状態

    • kubectlで理想状態をkube-apiserverに渡して登録 > 登録した理想状態はetcdというkubernetesのDBに保存される
  • 現実状態

    • kubeletがkube-apiserverを通してetcdに現実状態を保存
  • kube-controller-managerが理想状態と現実状態をチェックし異なっている場合は理想状態に近づける

参考

Kubernetesとは何か? | Kubernetes

Kubernetesのコンポーネント | Kubernetes

Podの概観 | Kubernetes

zae-zae.hatenablog.com

zae-zae.hatenablog.com