Kubernetesは、コンテナ化されたアプリケーションのデプロイ、スケーリング、管理を自動化するために使用されるオープンソースシステムです。 K8sとも呼ばれます。これは、残りの8文字の「ubernete」を8に置き換えた短い略語です。
UbuntuへのKubernetesのインストール
このチュートリアルでは、Kubernetesのインストール方法を紹介します。 Ubuntuシステムで設定します。このチュートリアルでは、次の最小構成の2つのUbuntuノード(マシン)が必要です。
- ノード1:マスターノードになります(2コアのCPU、2 GBのRAM)。
- ノード2:スレーブノードになります(1コアのCPU、1GBのRAM)。
インストールプロセスを開始する前に、マシンが更新されていることを確認する必要があります。次のコマンドを使用できます:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
ノードのホスト名を設定
手順1.マスターノードで、次のコマンドを使用します。
sudo hostnamectl set-hostname kubernetes-master
手順2.スレーブノードで、次のコマンドを使用します。
sudo hostnamectl set-hostname kubernetes-slave
有効なTLS証明書を取得するには、両方のノードに正確な日時を設定することを強くお勧めします。
Dockerのインストール
マスターとスレーブで次の手順を実行します。
手順1.次のコマンドを使用してDockerをインストールします。
sudo apt install docker.io
ステップ2.使用できるインストールを確認します:
docker --version
手順3.デフォルトでは、Dockerサービスは有効になっていません。したがって、インストールが正常に完了したら、両方のノードで次のコマンドを実行して、Dockerサービスを有効にします。
sudo systemctl enable docker
Kubernetesのインストール
マスターとスレーブで次の手順を実行します。
手順1.次のコマンドを使用してcurlパッケージをインストールします。
sudo apt install curl
手順2.Kubernetes署名キーを追加します。
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add
手順3.Kubernetesリポジトリを追加します。
sudo apt-add-repository "deb http://apt.kubernetes.io/ kubernetes-xenial main"
このチュートリアルの執筆時点では、Xenial Kubernetesリポジトリのみが利用可能であるため、インストールに使用するリポジトリになることに注意してください。
ステップ4.インストールを確認し、次のコマンドを使用します:
kubeadm version
ステップ5.Kubernetesをインストールする前に、システムがスワップメモリを使用していないことを確認してください。Ubuntuがスワップメモリを使用している場合、Kubernetesは動作を拒否します。
スワップメモリを無効にします:
sudo swapoff -a
手順6.Kubernetesをインストールします。
sudo apt install kubeadm
Kubernetesマスターサーバーの初期化
手順1.マスターノードで、次のコマンドを使用してKubernetesマスターノードを初期化します。
sudo kubeadm init --pod-network-cidr=10.244.0.0/16
最後の行からコピーを取ります。クラスターに参加します。
ステップ2.また、前の出力と同様に、次のコマンドを使用してKubernetesクラスターの使用を開始することをお勧めします。
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
ポッドネットワークの展開
クラスタノード間の通信を有効にするには、ポッドネットワークをデプロイする必要があります。
手順1.マスターノードで、次のコマンドを使用してポッドネットワークをデプロイします。
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
ステップ2.マスターノードで、すべてが稼働していることを確認します。
kubectl get pods --all-namespaces
Kubernetesクラスターに参加する
今のところ、マスターノードとスレーブノードがKubernetesクラスターに参加する準備が整っているはずです。
手順1.スレーブノードで、スレーブノードをクラスタに参加させるには、Kubernetes初期化手順の出力から先にコピーしたコマンドを使用します。これは次のようになります。
sudo kubeadm join 10.0.2.15:6443 --token edvbbv.51hy5e2hgaxr1b4h --discovery-token-ca-cert-hash sha256:01db7c5913e363c099dc7a711550b8399c41f7cc92bda6b5ff06d6b8382a73e2
手順2.マスターノードで、スレーブノードがクラスターに参加しているかどうかを確認します。
kubectl get nodes
おめでとうございます。Kubernetesクラスターを作成しました。クラスターの使用を開始するために必要なサービス(ApacheコンテナーやNginxサーバーなど)をすべて展開してデプロイする準備ができているはずです。
このチュートリアルを楽しんでいただければ幸いです。インストール中に問題が発生した場合は、コメントを残してください。喜んでお手伝いします。