kubernetesチュートリアルをやってみる 第一回:クラスタ作成

LINEで送る
Pocket

はじめに

kubernetes_logo

前回の記事では、「CentOS7にminikubeをインストールする」について書いて行きましたが、今回は実際にkuberntesを動かしながら、基本的な動作を確認するところについて書いて行きたいと思います。

 

チュートリアルの内容

  1. ★kubernetesクラスタを作成する
  2. アプリケーションをクラスタにデプロイする
  3. アプリケーションを探索する
  4. アプリケーションを公開
  5. アプリケーションをスケールアップする
  6. アプリケーションを更新する

今回は、上記の内の★印部分を実施します。

 

環境

OS:CentOS Linux release 7.5.1804 (Core)
Kernel:3.10.0-862.2.3.el7.x86_64
minikube:v0.32.0

 

実施内容

今回はminikubeを使用し、kuberntes公式のチュートリアルに従って、kubernetesクラスタを作成するところまでを実施したい思います。

 

kubernetesクラスタの概念

kubernetes_01_cluster

 

  • マスターとノードの2種類で構成される
  • マスター
    • クラスタの管理を担当する
    • アプリケーションのスケジューリング・状態管理等、クラスタ内のアクティビティを調整する
  • ノード
    • アプリケーションを実行するためワーカーマシン
    • kubeletと言うエージェントが、マスターとの通信を管理
    • dockerやrktなどの、コンテナを操作するためのツールが必要
    • マスターが公開するkubernetes APIを通じて、マスターと通信する

 

今回の環境では、minikubeを用いているため、1台のマシンがこのマスターとノードの機能を持ち合わせています。

 

手順

minikbeのバージョン確認

# minikube version
minikube version: v0.32.0
#

minikubeの起動

# minikube start --vm-driver=none
Starting local Kubernetes v1.12.4 cluster...
Starting VM...
Getting VM IP address...
Moving files into cluster...
Setting up certs...
Connecting to cluster...
Setting up kubeconfig...
Stopping extra container runtimes...
Starting cluster components...
Verifying kubelet health ...
Verifying apiserver health ...Kubectl is now configured to use the cluster.

===================

中略

Everything looks great. Please enjoy minikube!

#

minikubeの状態確認

# minikube status
host: Running
kubelet: Running
apiserver: Running
kubectl: Correctly Configured: pointing to minikube-vm at 10.0.2.15
#

各状態がRunningとなり、起動を確認できました。
また、minikubeを起動しているVMが、10.0.2.15 のIPで動作している事も分かります。

kubectlのバージョン確認

# kubectl version -o json
{
"clientVersion": {
"major": "1",
"minor": "13",
"gitVersion": "v1.13.1",
"gitCommit": "eec55b9ba98609a46fee712359c7b5b365bdd920",
"gitTreeState": "clean",
"buildDate": "2018-12-13T10:39:04Z",
"goVersion": "go1.11.2",
"compiler": "gc",
"platform": "linux/amd64"
},
"serverVersion": {
"major": "1",
"minor": "12",
"gitVersion": "v1.12.4",
"gitCommit": "f49fa022dbe63faafd0da106ef7e05a29721d3f1",
"gitTreeState": "clean",
"buildDate": "2018-12-14T06:59:37Z",
"goVersion": "go1.10.4",
"compiler": "gc",
"platform": "linux/amd64"
}
}
#

kubectlとは、kubernetesを操作するためのコマンドです。
クライアントバージョンはkubectlのパージョンを表し、サーババージョンはマスターのkubernetesのバージョンを表します。

クラスタの情報確認

# kubectl cluster-info
Kubernetes master is running at https://10.0.2.15:8443
KubeDNS is running at https://10.0.2.15:8443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy

To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
#

kubernetesが使用するポートや、kubernetesが内部で使用するDNSについての情報が分かります。

 

クラスタのノード情報確認

# kubectl get node
NAME STATUS ROLES AGE VERSION
minikube Ready master 14m v1.12.4
#

クラスタを構成するノードの一覧が確認できます。
今回はminikubeを使用しているため、masterの1台のみの構成となります。

 

まとめ

minikubeを起動するだけでkubernetesクラスタが構成出来、kubectlコマンドを使用する事で、kubernetesと通信して情報の表示が出来る事が確認出来ました。

次回は、ここで構成したkubernetesクラスタに、アプリケーションをデプロイして行きたいと思います。

 

参考サイト

Learn Kubernetes Basics

 

LINEで送る
Pocket

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

12 + sixteen =