【Kubernetes初めの一歩】Kubernetesって何?
はじめに
Kubernetesについて、これから勉強を始める人向けに「Kubernetesって何?」や「そもそもなんて読むの?k8sは?」みたいな基本的なことを簡単にまとめます。
Kubernetesとは
Kubernetes
とは、コンテナの運用を自動化するためのコンテナオーケストレーションシステムです。コンテナでの運用をいろいろ楽にしてくれるプラットフォームになります。
Googleが社内向けコンテナオーケストレーションシステムとして開発・利用していたものを2014年にオープンソース化しました。
プロダクショングレードのコンテナ管理基盤
プロダクショングレードのコンテナ管理基盤
読み方・書き方
まず最初に戸惑うのが読み方です。
以下のように読まれます。
- クーバネティス
- クバネテス
また、Kubernetesと長いので、k8s
と略されることもあります。
どんなことができるか
Kubernetesのドキュメントより、Kubernetesでは以下のようなことができます。
- サービスディスカバリーと負荷分散
- ストレージ オーケストレーション
- 自動化されたロールアウトとロールバック
- 自動ビンパッキング
- 自己修復
- 機密情報と構成管理
これからもわかるようにKubernetesでは、コンテナを利用してサービスを公開・負荷分散し、コンテナを自動的に再起動して修復したりと、コンテナ運用上で楽になる機能が備わっています。
クラウドサービスのKubernetes
KubernetesはOSSなので自前で環境を構築することもできますが、GCP/AWS/AzureなどのパブリッククラウドでもKubernetesのマネージドサービスが提供されています。
- GCP: GKE
- AWS: Amozon EKS
- Azure: AKS
何はともあれ動かしてみる
まずはとにかくローカルでKubernetesを動かしてみたいと思います。
Kubernetesの機能は多岐に渡るので、今回はコンテナを1つだけ実行してみることにします。
準備
ローカルでKubernetesを動かすために、Docker DesktopでKubernetes環境を構築します。
Docker Desktopのインストールについては、下記で説明しています。
いまさらDocker入門
:::affiliate-message 本ページはAmazonアフィリエイトのリンクを含みます。
以下のようにDockerの設定画面からKubernetesを有効化します。
次に、Kubernetesのコマンドラインツールであるkubectl
をインストールします。
1❯ brew install kubectl
Pod(コンテナ)の実行
Podと呼ばれるコンテナの集合体を実行します。 ここではnginxのイメージを利用しています。
1❯ kubectl run demo --image=nginx --labels app=demo
2pod/demo created
正常に実行できたか確認します。
1❯ kubectl get pods --selector app=demo
2NAME READY STATUS RESTARTS AGE
3demo 1/1 Running 0 8s
ローカルマシンの8080ポートからコンテナの80ポートに転送します。
1❯ kubectl port-forward demo 8080:80
2Forwarding from 127.0.0.1:8080 -> 80
3Forwarding from [::1]:8080 -> 80
4Handling connection for 8080
5Handling connection for 8080
ブラウザからhttp://localhost:8080/
にアクセスするとnginxの画面が確認できます。
まとめ
- Kubernetesはコンテナの運用を自動化するためのコンテナオーケストレーションシステム
参考
- Kubernetesドキュメント | Kubernetes
- kubernetes/kubernetes: Production-Grade Container Scheduling and Management
- kubectlのインストールおよびセットアップ | Kubernetes