k8sって?

Kubernetes(k8s)は、自動デプロイ、スケーリング、アプリ・コンテナの運用自動化のために設計されたオープンソースのプラットフォームです。

物理サーバーや仮想サーバーのクラスタ環境で、アプリのコンテナを実行します。

コンテナオーケストレーションエンジンであるk8sを利用することで以下のようなことが実現可能である。

・ローリング・アップデート

・スケーリング/オートスケーリング

・コンテナの死活監視

・コンテナのスケジューリング

・ロードバランシング

・障害児のセルフヒーリング

・データの管理

・ログの管理

・Infrastructure as Code

 

k8sとリソース

Kubernetes のリソースにはコンテナ、ロードバランサ、ノードなど様々な種類があり、リソースによってYAMLマニフェストに指定できるパラメータが異なります。

リソースの種類 内容
Workloadsリソース

コンテナの実行に関するリソース

  • Pod
  • ReplicationController
  • ReplicaSet
  • Deployment
  • DaemonSet
  • StatefulSet
  • Job
  • CronJob
Discovery&LBリソース

コンテナを外部公開するようなエンドポイントを提供するリソース

  • Service
    • ClusterIP
    • NodePort
    • LoadBalancer
    • ExternalIP
    • ExternalName
    • Headless
  • Ingress
Config&Storageリソース

設定・機密情報・永続化ボリュームなどに関するリソース

  • Secret
  • ConfigMap
  • PersistentVolumeClaim
Clusterリソース

セキュリティやクォータなどに関するリソース

  • Namespace
  • ServiceAccount
  • Role
  • ClusterRole
  • RoleBinding
  • ClusterRoleBinding
  • NetworkPolicy
  • ResourceQuota
  • PersistentVolume
  • Node
Metadataリソース

リソースを操作する系統のリソース

  • CustomResourceDefinition
  • LimitRange
  • HorizontalPodAutoscaler