継続は力なり

タイトル通り定期的な更新を心掛けるブログです。

入門 Kubernetes 3章

タダです。

今回は3章です www.oreilly.co.jp

3.1

  • GCP、Azure、AWSへのKubernetesインストールする

GCPの場合

  • GCPでは、Google Kubernetes Engine(GKE)を提供している
    • 利用するにはGCPのアカウントと、gcloudがインストールされる必要がある
# 設定を初期化
$ gcloud init

# デフォルトゾーンの設定
$ gcloud config set compute/zone us-east-a

# クラスタの作成
$ gcloud container clusters create kuar-cluster

# クラスタの認証情報を取得する
$ gcloud auth application-default login 

Azureの場合

  • Azure Container Serviceの一部としてKubernetesを提供している
    • 簡単に始めるためには、Azure Cloud Shellを使うこと
    • このシェルには azコマンドが自動でインストールされ、設定済みとなっている
  • シェルが動作したら次のコマンドを実行していく
# リソースグループの作成
$ az group create --name=kuar --location=westus

# クラスタを作成
$ az acs create --orchestrator-type=kubernetes --resource-gorup=kuar --name=kuar-cluster

# クラスタの認証情報の取得
$ az acs kubernetes get-credentials --resource-group=kuar --name=kuar-cluster

# kubectlインストール
$ az acs kubernetes install-cli

AWSの場合

3.2

  • ローカル開発環境が必要、クラウドサービスに課金したくない場合はminikubeをインストールできる
    • minikubeはテストや開発用のシングルクラスターであるため、信頼性はない
  • minikubeは https://github.com/kubernetes/minikube からダウンロードできる
  • minikubeのインストールしたら、以下のコマンドを使ってクラスタを作れる
$ minikube start

# クラスタ停止
$ minikube stop

# クラスタ削除
$ minikube delete

3.3

  • ラズパイでKubernetesを動かすことも可能(詳細な手順は付録レベルのため割愛)

3.4

  • Kubernetesのクライアントは、kubectl
    • kubectlには、Pod、ReplicaSet、ServiceなどのKubernetesオブジェクトを管理できる
  • kubectlの操作の一例は以下のようなもの
    • conroller-managetはクラスタの振る舞いを制御するコントローラを動かす役割を担っている
    • schedulerは各Podをクラスタ内のそれぞれのノードに配置する
    • etcdはクラスタのすべてのAPIオブジェクトが保存されるストレージ
# クラスタのバージョン確認
$ kubectl version

# クラスタのステータス確認
$ kubectl get componentstatus

# ワーカーノードの表示
$ kubectl get nodes

# ノードの情報を詳細に表示する
$ kubectl describe nodes node-1<ノード名>

3.5

  • Kubernetesの特徴の一つにKubernetesクラスタを構成するオブジェクトはKubernetes自体からデプロイされる
    • Kubernetesオブジェクトのいくつかをみていく
  • Kubertes proxyはKubernetesクラスタ内のロードバランスされたServiceにネットワークトラフィックをルーティングする役割を担っている
    • このためプロキシはクラスタ内の各ノードで動作している必要がある
  • Kubernetesは内部にDNSをもっている
  • KubernetesのGUIは、kubernetesのDeploymentとして管理される
    • ロードバランスのためのServiceもある

次回は4章です。