【Kubernetes初めの一歩】Kubernetesって何?

スポンサーリンク

はじめに

Kubernetesについて、これから勉強を始める人向けに「Kubernetesって何?」や「そもそもなんて読むの?k8sは?」みたいな基本的なことを簡単にまとめます。

Kubernetesとは

Kubernetesとは、コンテナの運用を自動化するためのコンテナオーケストレーションシステムです。コンテナでの運用をいろいろ楽にしてくれるプラットフォームになります。

Googleが社内向けコンテナオーケストレーションシステムとして開発・利用していたものを2014年にオープンソース化しました。

プロダクショングレードのコンテナ管理基盤
Kubernetes(K8s)は、デプロイやスケーリングを自動化したり、コンテナ化されたアプリケーションを管理したりするための、オープンソースのシステムです。管理や検出を容易にするため、アプリケーションを論理的な単位に分割し、コンテナをグルーピングします。KubernetesはGoogleでの15年にわたる経験を基に構...

読み方・書き方

まず最初に戸惑うのが読み方です。

以下のように読まれます。

  • クーバネティス
  • クバネテス

また、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入門
はじめにいまさらながらDockerについてまとめてみました。なるべく動かしながらDockerを理解していきたいと思います。DockerとはDockerとは、コンテナを活用した開発・運用を可能にするソフトウェアです。コンテナを使えるツールとい...

以下のようにDockerの設定画面からKubernetesを有効化します。

次に、Kubernetesのコマンドラインツールであるkubectlをインストールします。

❯ brew install kubectl

Pod(コンテナ)の実行

Podと呼ばれるコンテナの集合体を実行します。
ここではnginxのイメージを利用しています。

❯ kubectl run demo --image=nginx --labels app=demo
pod/demo created

正常に実行できたか確認します。

❯ kubectl get pods --selector app=demo
NAME   READY   STATUS    RESTARTS   AGE
demo   1/1     Running   0          8s

ローカルマシンの8080ポートからコンテナの80ポートに転送します。

❯ kubectl port-forward demo 8080:80
Forwarding from 127.0.0.1:8080 -> 80
Forwarding from [::1]:8080 -> 80
Handling connection for 8080
Handling connection for 8080

ブラウザからhttp://localhost:8080/にアクセスするとnginxの画面が確認できます。

まとめ

  • Kubernetesはコンテナの運用を自動化するためのコンテナオーケストレーションシステム

参考

タイトルとURLをコピーしました