インストール - Kubernetes

提供:MochiuWiki - SUSE, Electronic Circuit, PCB
ナビゲーションに移動 検索に移動

概要

Kubernetesは、コンテナを管理する基盤ツールである。
Kubernetesの基本機能として、デプロイ、拡張、負荷分散、ログ記録、監視などがある。

これは、ソフトウェアの開発および管理が簡便かつ安全になる。

また、ソフトウェアの運用において、高負荷等で異常が起きた場合、スケールアウトしたりフェールオーバーする必要がある。
仮想マシンを使用する構成では、管理はその仮想マシン単位になるため、スケールアウトおよびフェールオーバーの設定も仮想マシン単位でしか行えない。

Kubernetesを使用することにより、コンテナ単位つまりソフトウェア単位で管理することができるため、スケールアウトおよびフェールオーバーもソフトウェア単位で設定することができる。


Kubernetesの基本

Kubernetesをデプロイするとクラスタが展開される。
Kubernetesクラスタは、コンテナ化されたソフトウェアを実行するノード(Node)と呼ばれるワーカーマシンの集合である。

ソフトウェアのコンポーネントはPodと呼ばれ、下図のように、このPodがノードに1つ以上の含まれて展開される。
ノードの制御は、kubeletと呼ばれるエージェントで行われており、ノードへのアクセスはkube-proxyと呼ばれるプロキシを介して行われる。

また、コントロールプレーンと呼ばれるコンポーネントは、クラスタを制御する機能を持つ。

Kubernetes 1.png


  • コントロールプレーンコンポーネント
    • kube-apiserver
      Kubernetes APIを外部に提供する。
      Kubernetesコントロールプレーンのフロントエンド
    • etcd
      一貫性、高可用性を持ったキーバリューストアで、Kubernetesの全てのクラスター情報の保存場所
    • kube-scheduler
      Podにノードが割り当てられているかどうかを確認して、割り当てを行う。
    • kube-controller-manager
      通知やPodの数を監視する複数のコントローラープロセスを実行する。
    • cloud-controller-manager
      基盤であるクラウドプロバイダーと対話するコントローラーを実行する。


  • ノードコンポーネント
    • kubelet
      クラスタ内の各ノードで実行されるエージェント。各コンテナがPodで実行されていることを保証する。
    • kube-proxy
      クラスター内の各nodeで動作しているネットワークプロキシ
  • コンテナランタイム
    コンテナの実行を担当する。



Kubernetesのインストール

クラスタのマイナーバージョン差が1つ以内のkubectlのバージョンを使用する必要がある。 例えば、kubectl v1.23のクライアントは、v1.22、v1.23、v1.24と通信することができる。 最新の互換性のあるバージョンのkubectlを使用することにより、予期せぬ問題を回避することができる。
Kubernetesをダウンロードする。

# 最新のKubernetesをダウンロードする
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"

# Kubernetesのバージョンを指定する
curl -LO https://dl.k8s.io/release/<バージョン>/bin/linux/amd64/kubectl
例. curl -LO https://dl.k8s.io/release/v1.23.0/bin/linux/amd64/kubectl


Kubernetesをインストールする。

# システムディレクトリにインストールする場合
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl

# 任意のディレクトリにインストールする場合
chmod u+x kubectl
mkdir -p <Kubernetesのインストールディレクトリ>
mv kubectl <Kubernetesのインストールディレクトリ>


任意のディレクトリにKubernetesをインストールした場合は、~/.profileファイル等に環境変数PATHを追記する。

vi ~/.profile


# ~/.profileファイル

export PATH="<Kubernetesのインストールディレクトリ>:$PATH"


Kubernetesが正常にインストールされているかどうかを確認する。

kubectl version --client


次に、kubectl convertプラグインをインストールする。
このプラグインは、異なるバージョン間でマニフェストを変換することができる。
これは、Kubernetesでマニフェストを非推奨のAPIバージョンに移行するのに役立つ。

kubectl convertプラグインをダウンロードする。

curl -LO https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl-convert


kubectl convertプラグインをインストールする。

# システムディレクトリにインストールする場合
sudo install -o root -g root -m 0755 kubectl-convert /usr/local/bin/kubectl-convert

# 任意のディレクトリにインストールする場合
chmod u+x kubectl-convert
mv kubectl-convert <Kubernetesのインストールディレクトリ>


kubectl convertプラグインが正常にインストールされているかどうかを確認する。

kubectl convert --help