この文書は自動機械翻訳技術を使用して翻訳されています。 正確な翻訳を提供するように努めておりますが、翻訳された内容の完全性、正確性、信頼性については一切保証いたしません。 相違がある場合は、元の英語版 英語 が優先され、正式なテキストとなります。

3.Kubernetesのインストール(Dockerインストールの場合はスキップ)

Dockerで単一ノードにRancherをインストールする場合は、このセクションをスキップしてください。

このセクションでは、Kubernetesクラスターをインストールする方法について説明します。これは、ランチャーサーバー環境のベストプラクティスに従っています。このクラスターは、Rancherサーバーのみを実行するために専用である必要があります。

Rancherは、ホスティングされたKubernetesプロバイダーを含む、任意のKubernetesクラスターにインストールできます。

RKE2またはK3sでエアギャップされたKubernetesクラスターをセットアップする手順は以下の通りです。

  • K3s

  • RKE2

このガイドでは、エアギャップされた環境でノードを作成し、バスティオンサーバーに安全なDockerプライベートレジストリがあると仮定しています。

1.イメージディレクトリの準備

実行するK3sのバージョンに対して、 releasesページからアーキテクチャ用のイメージtarファイルを取得してください。

各ノードでK3sを開始する前に、tarファイルを`images`ディレクトリに配置してください。例えば:

sudo mkdir -p /var/lib/rancher/k3s/agent/images/
sudo cp ./k3s-airgap-images-$ARCH.tar /var/lib/rancher/k3s/agent/images/

2.レジストリYAMLの作成

`/etc/rancher/k3s/registries.yaml`にregistries.yamlファイルを作成します。これにより、K3sがプライベートレジストリに接続するために必要な詳細が指定されます。

registries.yamlファイルは、必要な情報を入力する前に次のようになります:

---
mirrors:
  customreg:
    endpoint:
      - "https://ip-to-server:5000"
configs:
  customreg:
    auth:
      username: xxxxxx # this is the registry username
      password: xxxxxx # this is the registry password
    tls:
      cert_file: <path to the cert file used in the registry>
      key_file:  <path to the key file used in the registry>
      ca_file: <path to the ca file used in the registry>

なお、現時点ではK3sでは安全なレジストリのみがサポートされています(カスタムCAを使用したSSL)。

K3sのプライベートレジストリ設定ファイルに関する詳細は、 K3sのドキュメントを参照してください。

3.K3sをインストールする

Rancherは、サポートされているKubernetesバージョンにインストールする必要があります。ご利用の Rancher バージョンに対してサポートされている Kubernetes のバージョンを確認するには、 Rancher サポートマトリックス を参照してください。

K3s(Kubernetes)バージョンを指定するには、K3sインストールスクリプトを実行する際にINSTALL_K3S_VERSION(例:INSTALL_K3S_VERSION="v1.24.10+k3s1")環境変数を使用します。

エアギャップイメージtarを取得するために使用したのと同じバージョンに一致させて、 releasesページからK3sのバイナリを取得してください。 K3sインストールスクリプトを https://get.k3s.ioで取得してください。

各ノードの`/usr/local/bin`にバイナリを配置してください。 インストールスクリプトを各ノードの任意の場所に配置し、`install.sh`という名前を付けてください。

各サーバーにK3sをインストールしてください:

INSTALL_K3S_SKIP_DOWNLOAD=true INSTALL_K3S_VERSION=<VERSION> ./install.sh

各エージェントにK3sをインストールしてください:

INSTALL_K3S_SKIP_DOWNLOAD=true INSTALL_K3S_VERSION=<VERSION> K3S_URL=https://<SERVER>:6443 K3S_TOKEN=<TOKEN> ./install.sh

ここで、<SERVER>`はサーバーのIPまたは有効なDNSで、<TOKEN>`は`/var/lib/rancher/k3s/server/node-token`で見つかるサーバーのノードトークンです。

K3sは、エアギャップ環境でのDNSの設定に役立つ可能性のあるkubelets用の`--resolv-conf`フラグも提供します。

4.kubeconfig ファイルを保存して使用を開始します。

各 Rancher サーバーノードに K3s をインストールしたとき、ノードの /etc/rancher/k3s/k3s.yamlkubeconfig ファイルが作成されました。このファイルには、クラスターへの完全なアクセス権のための資格情報が含まれており、このファイルは安全な場所に保存する必要があります。

この kubeconfig ファイルを使用するには、

  1. Kubernetes コマンドラインツール kubectl, をインストールします。

  2. /etc/rancher/k3s/k3s.yaml にあるファイルをコピーし、ローカルマシンのディレクトリ ~/.kube/config に保存します。

  3. kubeconfig ファイルでは、server ディレクティブが localhost として定義されています。サーバーをロードバランサーの DNS として構成し、ポート 6443 を参照します。(Kubernetes API サーバーにはポート 6443 でアクセスされ、Rancher サーバーにはポート 80 および 443 でアクセスされます。)以下に`k3s.yaml`の例を示します。

apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: [CERTIFICATE-DATA]
    server: [LOAD-BALANCER-DNS]:6443 # Edit this line
  name: default
contexts:
- context:
    cluster: default
    user: default
  name: default
current-context: default
kind: Config
preferences: {}
users:
- name: default
  user:
    password: [PASSWORD]
    username: admin

*結果:*これで kubectl を使用して K3s クラスターを管理できます。複数の kubeconfig ファイルがある場合は、kubectl を使用する際にファイルへのパスを渡すことで、使用するファイルを指定できます。

kubectl --kubeconfig ~/.kube/config/k3s.yaml get pods --all-namespaces

`kubeconfig`ファイルに関する詳細については、 K3sのドキュメントまたは 公式Kubernetesドキュメントを参照して、`kubeconfig`ファイルを使用してクラスターアクセスを整理してください。

アップグレードに関する注意事項

エアギャップ環境をアップグレードするには、次の方法で実行できます:

  1. K3sのアップグレード対象のバージョンに対する releasesページから新しいエアギャップイメージ(tarファイル)をダウンロードしてください。各ノードの`/var/lib/rancher/k3s/agent/images/`ディレクトリにtarファイルを配置してください。古いtarファイルを削除してください。

  2. 各ノードの`/usr/local/bin`にある古いK3sバイナリをコピーして置き換えてください。インストールスクリプトを https://get.k3s.ioにコピーしてください(前回のリリース以降に変更されている可能性があるため)。同じ環境変数を使用して、過去に行ったのと同様にスクリプトを再度実行してください。

  3. K3sサービスを再起動してください(インストーラーによって自動的に再起動されない場合)。

このガイドでは、エアギャップ環境でノードを作成し、バスティオンサーバーに安全なDockerプライベートレジストリがあると仮定しています。

1.RKE2設定を作成してください。

`/etc/rancher/rke2/config.yaml`にconfig.yamlファイルを作成してください。これには、高可用性のRKE2クラスターを作成するために必要なすべての設定オプションが含まれます。

最初のサーバーの最小構成は次のとおりです:

token: my-shared-secret
tls-san:
  - loadbalancer-dns-domain.com

他の各サーバーの構成ファイルには、同じトークンが含まれ、RKE2に最初のサーバーに接続するよう指示する必要があります:

server: https://ip-of-first-server:9345
token: my-shared-secret
tls-san:
  - loadbalancer-dns-domain.com

詳細については、https://documentation.suse.com/cloudnative/rke2/latest/en/install/ha.html[RKE2ドキュメント]を参照してください。

RKE2は、エアギャップ環境でのDNSの設定に役立つ可能性のあるkubelets用の`resolv-conf`オプションも提供します。

2.レジストリYAMLの作成

`/etc/rancher/rke2/registries.yaml`にregistries.yamlファイルを作成します。これにより、RKE2がプライベートレジストリに接続するために必要な詳細情報が提供されます。

registries.yamlファイルは、必要な情報を入力する前に次のようになります:

---
mirrors:
  customreg:
    endpoint:
      - "https://ip-to-server:5000"
configs:
  customreg:
    auth:
      username: xxxxxx # this is the registry username
      password: xxxxxx # this is the registry password
    tls:
      cert_file: <path to the cert file used in the registry>
      key_file:  <path to the key file used in the registry>
      ca_file: <path to the ca file used in the registry>

RKE2のプライベートレジストリ構成ファイルに関する詳細情報は、https://documentation.suse.com/cloudnative/rke2/latest/en/install/containerd_registry_configuration.html[RKE2ドキュメント]を参照してください。

3.RKE2をインストールします。

Rancherは、サポートされているKubernetesバージョンにインストールする必要があります。ご利用のRancherバージョンに対してサポートされているKubernetesのバージョンを確認するには、 サポートメンテナンス条件を参照してください。

リリースからインストールスクリプト、rke2、rke2-images、およびsha256sumアーカイブをダウンロードし、各サーバーのディレクトリにアップロードします。

mkdir /tmp/rke2-artifacts && cd /tmp/rke2-artifacts/
wget https://github.com/rancher/rke2/releases/download/v1.21.5%2Brke2r2/rke2-images.linux-amd64.tar.zst
wget https://github.com/rancher/rke2/releases/download/v1.21.5%2Brke2r2/rke2.linux-amd64.tar.gz
wget https://github.com/rancher/rke2/releases/download/v1.21.5%2Brke2r2/sha256sum-amd64.txt
curl -sfL https://get.rke2.io --output install.sh

次に、以下の例のように、各サーバーのディレクトリを使用してinstall.shを実行します。

INSTALL_RKE2_ARTIFACT_PATH=/tmp/rke2-artifacts sh install.sh

その後、すべてのサーバーでサービスを有効にして開始します。

` systemctl enable rke2-server.service systemctl start rke2-server.service `

詳細については、https://documentation.suse.com/cloudnative/rke2/latest/en/install/airgap.html[RKE2ドキュメント]を参照してください。

4.kubeconfig ファイルを保存して使用を開始します。

各 Rancher サーバーノードに RKE2 をインストールしたとき、ノードの /etc/rancher/rke2/rke2.yamlkubeconfig ファイルが作成されました。このファイルには、クラスターへの完全なアクセス権のための資格情報が含まれており、このファイルは安全な場所に保存する必要があります。

この kubeconfig ファイルを使用するには、

  1. kubectlというKubernetesのコマンドラインツールをインストールします。

  2. /etc/rancher/rke2/rke2.yaml にあるファイルをコピーし、ローカルマシンのディレクトリ ~/.kube/config に保存します。

  3. kubeconfig ファイルでは、server ディレクティブが localhost として定義されています。サーバーをロードバランサーの DNS として構成し、ポート 6443 を参照します。(Kubernetes API サーバーにはポート 6443 でアクセスされ、Rancher サーバーにはポート 80 および 443 でアクセスされます。)ここに例を示します:rke2.yaml

apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: [CERTIFICATE-DATA]
    server: [LOAD-BALANCER-DNS]:6443 # Edit this line
  name: default
contexts:
- context:
    cluster: default
    user: default
  name: default
current-context: default
kind: Config
preferences: {}
users:
- name: default
  user:
    password: [PASSWORD]
    username: admin

*結果:*これで kubectl を使用して RKE2 クラスターを管理できます。複数の kubeconfig ファイルがある場合は、kubectl を使用する際にファイルへのパスを渡すことで、使用するファイルを指定できます。

kubectl --kubeconfig ~/.kube/config/rke2.yaml get pods --all-namespaces

`kubeconfig`ファイルの詳細については、https://documentation.suse.com/cloudnative/rke2/latest/en/cluster_access.html[RKE2 ドキュメント] または 公式 Kubernetes ドキュメント(`kubeconfig`ファイルを使用したクラスターアクセスの整理について)を参照してください。

アップグレードに関する注意事項

エアギャップ環境をアップグレードするには、次の方法で実行できます:

  1. アップグレードするRKE2のバージョンに対して、 リリースページから新しいエアギャップアーティファクトおよびスクリプトをダウンロードします。

  2. 同じ環境変数を使用して、過去に行ったのと同様にスクリプトを再度実行してください。

  3. RKE2サービスを再起動します。

問題やエラーはありますか?

トラブルシューティングページを参照してください。