46 KiB
KubeKey
KubeKeyは、Kubernetesクラスターをデプロイするためのオープンソースの軽量ツールです。Kubernetes/K3s、Kubernetes/K3sとKubeSphere、および関連するクラウドネイティブアドオンをインストールするための柔軟で迅速かつ便利な方法を提供します。また、クラスターのスケールとアップグレードを効率的に行うツールでもあります。
さらに、KubeKeyはカスタマイズされたエアギャップパッケージもサポートしており、オフライン環境でクラスターを迅速にデプロイすることができます。
KubeKeyはCNCF kubernetes 一致性認証に合格しています。
KubeKeyを使用する3つのシナリオがあります。
- Kubernetes/K3sのみをインストールする
- Kubernetes/K3sとKubeSphereを1つのコマンドでインストールする
- まずKubernetes/K3sをインストールし、その上にks-installerを使用してKubeSphereをデプロイする
重要: 既存のKubernetesクラスターがある場合は、ks-installer (既存のKubernetesクラスターにKubeSphereをインストールする)を参照してください。
サポートされている環境
Linuxディストリビューション
- Ubuntu 16.04, 18.04, 20.04, 22.04
- Debian Bullseye, Buster, Stretch
- CentOS/RHEL 7
- AlmaLinux 9.0
- SUSE Linux Enterprise Server 15
推奨Linuxカーネルバージョン:
4.15以降Linuxカーネルバージョンを確認するには、uname -srmコマンドを実行します。
Kubernetesバージョン
- v1.19: v1.19.15
- v1.20: v1.20.10
- v1.21: v1.21.14
- v1.22: v1.22.15
- v1.23: v1.23.10 (デフォルト)
- v1.24: v1.24.7
- v1.25: v1.25.3
サポートされているバージョンの詳細については、以下を参照してください:
Kubernetesバージョン
K3sバージョン
コンテナマネージャー
- Docker / containerd / CRI-O / iSula
Kata Containersは、コンテナマネージャーがcontainerdまたはCRI-Oの場合に、ランタイムクラスを自動的にインストールおよび構成するように設定できます。
ネットワークプラグイン
- Calico / Flannel / Cilium / Kube-OVN / Multus-CNI
カスタムネットワークプラグインの要件がある場合、Kubekeyはネットワークプラグインを
noneに設定することもサポートしています。
要件と推奨事項
- 最小リソース要件(KubeSphereの最小インストールの場合):
- 2 vCPU
- 4 GB RAM
- 20 GBストレージ
/var/lib/dockerは主にコンテナデータを保存するために使用され、使用および操作中に徐々にサイズが大きくなります。プロダクション環境の場合、/var/lib/dockerが別のドライブにマウントされることをお勧めします。
- OS要件:
SSHがすべてのノードにアクセスできること。- すべてのノードの時間が同期されていること。
- すべてのノードで
sudo/curl/opensslが使用できること。 dockerは自分でインストールするか、KubeKeyを使用してインストールできます。Red HatのLinuxリリースにはSELinuxが含まれています。SELinuxを無効にするか、SELinuxのモードを切り替えることをお勧めします。
- OSがクリーンであることをお勧めします(他のソフトウェアがインストールされていない)。そうしないと、競合が発生する可能性があります。
- dockerhub.ioからのイメージのダウンロードに問題がある場合は、コンテナイメージミラー(アクセラレータ)を準備することをお勧めします。Dockerデーモンのレジストリミラーを構成する。
- KubeKeyはデフォルトでOpenEBSをインストールして、開発およびテスト環境のLocalPVをプロビジョニングします。これは新しいユーザーにとって非常に便利です。プロダクション環境では、NFS / Ceph / GlusterFSまたは商用製品を永続ストレージとして使用し、すべてのノードに関連クライアントをインストールしてください。
- コピー時に
Permission deniedが発生した場合は、まずSELinuxを無効にすることをお勧めします。
- 依存関係の要件:
KubeKeyはKubernetesとKubeSphereを一緒にインストールできます。バージョン1.18以降、kubernetesのインストール前にいくつかの依存関係をインストールする必要があります。以下のリストを参照して、事前にノードに関連する依存関係をチェックしてインストールしてください。
| Kubernetesバージョン ≥ 1.18 | |
|---|---|
socat |
必須 |
conntrack |
必須 |
ebtables |
オプションですが推奨 |
ipset |
オプションですが推奨 |
ipvsadm |
オプションですが推奨 |
- ネットワーキングとDNSの要件:
/etc/resolv.confのDNSアドレスが利用可能であることを確認してください。そうしないと、クラスター内のDNSに関する問題が発生する可能性があります。- ネットワーク構成でファイアウォールまたはセキュリティグループを使用している場合、インフラストラクチャコンポーネントが特定のポートを介して相互に通信できることを確認する必要があります。ファイアウォールをオフにするか、リンク構成に従うことをお勧めします: ネットワークアクセス。
使用方法
KubeKey実行ファイルの取得
-
最速の方法はスクリプトを使用することです:
curl -sfL https://get-kk.kubesphere.io | sh - -
KubeKeyのバイナリダウンロードはリリースページにもあります。 バイナリを解凍して、すぐに使用できます!
-
ソースコードからバイナリをビルドする
git clone https://github.com/kubesphere/kubekey.git cd kubekey make kk
クラスターの作成
クイックスタート
クイックスタートはall-in-oneインストール用で、KubernetesとKubeSphereに慣れるための良いスタートです。
注意: Kubernetesは一時的に大文字のNodeNameをサポートしていないため、ホスト名に大文字が含まれていると、後続のインストールエラーが発生します
コマンド
https://storage.googleapis.comにアクセスする際に問題がある場合は、最初にexport KKZONE=cnを実行してください。
./kk create cluster [--with-kubernetes version] [--with-kubesphere version]
例
-
デフォルトバージョン(Kubernetes v1.23.10)で純粋なKubernetesクラスターを作成する。
./kk create cluster -
指定されたバージョンのKubernetesクラスターを作成する。
./kk create cluster --with-kubernetes v1.24.1 --container-manager containerd -
KubeSphereがインストールされたKubernetesクラスターを作成する。
./kk create cluster --with-kubesphere v3.2.1
高度なインストール
高度なインストールを使用すると、カスタムパラメーターを制御したり、マルチノードクラスターを作成したりすることができます。具体的には、構成ファイルを指定してクラスターを作成します。
https://storage.googleapis.comにアクセスする際に問題がある場合は、最初にexport KKZONE=cnを実行してください。
-
まず、サンプル構成ファイルを作成します
./kk create config [--with-kubernetes version] [--with-kubesphere version] [(-f | --filename) path]例:
- デフォルトの構成でサンプル構成ファイルを作成します。ファイル名やフォルダーを指定することもできます。
./kk create config [-f ~/myfolder/abc.yaml]- KubeSphereを含む
./kk create config --with-kubesphere v3.2.1 -
環境に応じてconfig-sample.yamlファイルを変更します
注意: Kubernetesは一時的に大文字のNodeNameをサポートしていないため、workerNodeの名前に大文字が含まれていると、後続のインストールエラーが発生します
KubeSphereをインストールする場合、クラスターには永続ストレージが必要です。デフォルトではローカルボリュームが使用されます。他の永続ストレージを使用する場合は、addonsを参照してください。
-
構成ファイルを使用してクラスターを作成します
./kk create cluster -f config-sample.yaml
マルチクラスター管理の有効化
デフォルトでは、KubeKeyはKubernetesフェデレーションなしでソロクラスターのみをインストールします。KubeSphereを使用して複数のクラスターを集中管理するためのマルチクラスターコントロールプレーンを設定する場合は、config-example.yamlでClusterRoleを設定する必要があります。マルチクラスターのユーザーガイドについては、マルチクラスター機能の有効化方法を参照してください。
プラグイン可能なコンポーネントの有効化
KubeSphereはv2.1.0以降、いくつかのコア機能コンポーネントをデカップリングしました。これらのコンポーネントはプラグイン可能であり、インストール前またはインストール後に有効にすることができます。デフォルトでは、これらのコンポーネントを有効にしない場合、KubeSphereは最小インストールで開始されます。
ニーズに応じて、これらのコンポーネントを有効にすることができます。KubeSphereが提供するフルスタックの機能と機能を発見するために、これらのプラグイン可能なコンポーネントをインストールすることを強くお勧めします。これらを有効にする前に、マシンに十分なCPUとメモリがあることを確認してください。詳細については、プラグイン可能なコンポーネントの有効化を参照してください。
ノードの追加
新しいノードの情報をクラスター構成ファイルに追加し、変更を適用します。
./kk add nodes -f config-sample.yaml
ノードの削除
次のコマンドでノードを削除できます。削除するノード名を指定します。
./kk delete node <nodeName> -f config-sample.yaml
クラスターの削除
次のコマンドでクラスターを削除できます:
- クイックスタート(all-in-one)を開始した場合:
./kk delete cluster
- 高度なインストール(構成ファイルを使用して作成されたクラスター)を開始した場合:
./kk delete cluster [-f config-sample.yaml]
クラスターのアップグレード
Allinone
指定されたバージョンでクラスターをアップグレードします。
./kk upgrade [--with-kubernetes version] [--with-kubesphere version]
- Kubernetesのみのアップグレードをサポートします。
- KubeSphereのみのアップグレードをサポートします。
- KubernetesとKubeSphereの両方のアップグレードをサポートします。
マルチノード
指定された構成ファイルでクラスターをアップグレードします。
./kk upgrade [--with-kubernetes version] [--with-kubesphere version] [(-f | --filename) path]
--with-kubernetesまたは--with-kubesphereが指定されている場合、構成ファイルも更新されます。- クラスター作成に使用された構成ファイルを指定するには、
-fを使用します。
注意: マルチノードクラスターのアップグレードには、指定された構成ファイルが必要です。クラスターがkubekeyなしでインストールされた場合、またはインストールに使用された構成ファイルが見つからない場合は、構成ファイルを自分で作成するか、次のコマンドを使用して作成する必要があります。
クラスター情報を取得し、kubekeyの構成ファイルを生成します(オプション)。
./kk create config [--from-cluster] [(-f | --filename) path] [--kubeconfig path]
--from-clusterは、既存のクラスターからクラスター情報を取得することを意味します。-fは、構成ファイルが生成されるパスを指します。--kubeconfigは、kubeconfigのパスを指します。- 構成ファイルを生成した後、ノードのssh情報などのいくつかのパラメーターを入力する必要があります。
ドキュメント
- 機能リスト
- コマンド
- 構成例
- エアギャップインストール
- 高可用性クラスター
- アドオン
- ネットワークアクセス
- ストレージクライアント
- kubectl自動補完
- kubekey自動補完
- ロードマップ
- 証明書の確認と更新
- 開発者ガイド
貢献者 ✨
これらの素晴らしい人々に感謝します(絵文字キー):
このプロジェクトは all-contributors の仕様に従っています。どのような種類の貢献でも歓迎します!