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をインストールする)を参照してください。
- 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
コマンドを実行します。
- 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に関する問題が発生する可能性があります。- ネットワーク構成でファイアウォールまたはセキュリティグループを使用している場合、インフラストラクチャコンポーネントが特定のポートを介して相互に通信できることを確認する必要があります。ファイアウォールをオフにするか、リンク構成に従うことをお勧めします: ネットワークアクセス。
-
最速の方法はスクリプトを使用することです:
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]
指定されたバージョンでクラスターをアップグレードします。
./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 の仕様に従っています。どのような種類の貢献でも歓迎します!