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

SUSE® Rancher Prime: K3s クラスター設定リファレンス

このセクションでは、Rancherで新しいまたは既存のK3s Kubernetesクラスターに利用可能な設定オプションについて説明します。

概要

Kubernetesオプションは、2つの方法のいずれかで設定できます:

  • Rancher UI:Rancher UIを使用して、Kubernetesクラスターを設定する際に一般的にカスタマイズされるオプションを選択します。

  • クラスター設定ファイル:Rancher UIを使用してクラスターのKubernetesオプションを選択する代わりに、上級ユーザーはK3s設定ファイルを作成できます。設定ファイルを使用すると、K3sインストール中に利用可能な オプションのいずれかを設定できます。

Rancher UIでのクラスターの編集

Rancher UIでは、クラスターを編集するための2つの方法を提供しています:

  1. フォームを使用して。

  2. YAMLを使用して。

フォームを使用したクラスターの編集

このフォームでは、クラスターに最も頻繁に必要なオプションをカバーしています。

クラスターを編集するには、

  1. *☰ > クラスター管理*をクリックします。

  2. 構成したいクラスターに移動し、*⋮ > 設定を編集*をクリックします。

YAMLでのクラスターの編集

K3sクラスターのYAMLでの設定可能オプションの完全なリファレンスについては、 K3sドキュメントを参照してください。

YAMLでクラスターを編集するには:

  1. *☰ > クラスター管理*をクリックします。

  2. 構成したいクラスターに移動し、*⋮ > YAMLとして編集*をクリックします。

  3. `rkeConfig`ディレクティブの下にRKEオプションを編集します。

Rancher UIの設定オプション

マシンプールの設定

このサブセクションでは、一般的なマシンプールの設定について説明します。特定のインフラストラクチャプロバイダーの設定については、以下を参照してください:

プール名

マシンプールの名前です。

マシン数

プール内のマシンの数です。

役割

ノードにetcd、コントロールプレーン、ワーカーの役割を割り当てるオプション。

詳細

自動置換

ノードが連絡不能状態になってから自動的に削除・置き換えられるまでの時間。

削除前の排出

ノードが削除される前に、すべてのポッドを退避させてドレインする機能を有効にします。

Kubernetesノードラベル

ノードに ラベルを追加して、整理やオブジェクト選択を助けます。

ラベルの構文要件の詳細については、 Kubernetesのドキュメントを参照してください。

Taints

ノードに テイントを追加すると、ポッドが一致するトレランスを持たない限り、ノードにスケジュールされたり実行されたりするのを防ぎます。

クラスタ設定

基本

Kubernetesバージョン

クラスターのノードにインストールされているKubernetesのバージョン。

Kubernetesのアップグレードまたはロールバックの詳細については、Kubernetesのアップグレードを参照してください。

ポッドセキュリティアドミッション設定テンプレート
シークレットを暗号化する

シークレットの暗号化を有効または無効にするオプション。有効にすると、シークレットはAES-CBCキーを使用して暗号化されます。無効にすると、以前に暗号化されたシークレットは、再度暗号化が有効になるまで読み取れません。詳細については、 K3sのドキュメントを参照してください。

プロジェクトネットワークの分離

ネットワークプロバイダーがプロジェクトネットワークの分離を許可している場合、プロジェクト間の通信を有効または無効にするかを選択できます。

SELinux

SELinuxサポートを有効または無効にするオプション。

CoreDNS

デフォルトでは、 CoreDNSがデフォルトのDNSプロバイダーとしてインストールされます。CoreDNSがインストールされていない場合は、別のDNSプロバイダーを自分でインストールする必要があります。詳細については、 K3sのドキュメントを参照してください。

KlipperサービスLB

Klipperサービスのロードバランサーを有効または無効にするオプション。詳細については、 K3sのドキュメントを参照してください。

Traefik Ingress

Traefik HTTPリバースプロキシおよびロードバランサーを有効または無効にするオプション。詳細および設定オプションについては、 K3sのドキュメントを参照してください。

ローカルストレージ

ノードでの ローカルストレージを有効または無効にするオプション。

メトリクスサーバー

メトリクスサーバーを有効または無効にするオプション。有効にした場合、ポート10250が受信TCPトラフィックのために開かれていることを確認してください。

アドオン設定

クラスタの起動時に適用する アドオンとして管理される追加のKubernetesマニフェスト。詳細については、 K3sのドキュメントを参照してください。

エージェント環境変数

K3sエージェントのための環境変数を設定するオプション。環境変数はキーと値のペアを使用して設定できます。詳細については、 K3ドキュメントを参照してください。

etcd

自動スナップショット

定期的なetcdスナップショットを有効または無効にするオプション。有効にした場合、ユーザーはスナップショットの頻度を設定するオプションがあります。詳細については、 K3sドキュメントを参照してください。

Metrics

etcdメトリクスを公開するか、クラスタ内のみにするかを選択するオプション。

ネットワーキング

クラスターCIDR

ポッドIP用に使用するIPv4/IPv6ネットワークCIDR(デフォルト:10.42.0.0/16)。

値の例:

  • IPv4のみ:10.42.0.0/16

  • IPv6のみ:2001:cafe:42::/56

  • デュアルスタック:10.42.0.0/16,2001:cafe:42::/56

デュアルスタックまたはIPv6専用ネットワークに関連する追加の要件と制限については、以下のリソースを参照してください:

クラスターを最初に作成する際にサービスCIDRを設定する必要があります。クラスターが起動した後に既存のクラスターでサービスCIDRを有効にすることはできません。

サービスCIDR

サービスIP用に使用するIPv4/IPv6ネットワークCIDR(デフォルト:10.43.0.0/16)。

値の例:

  • IPv4のみ:10.43.0.0/16

  • IPv6のみ:2001:cafe:43::/112

  • デュアルスタック:10.43.0.0/16,2001:cafe:43::/112

デュアルスタックまたはIPv6専用ネットワークに関連する追加の要件と制限については、以下のリソースを参照してください:

クラスターを最初に作成する際にサービスCIDRを設定する必要があります。クラスターが起動した後に既存のクラスターでサービスCIDRを有効にすることはできません。

クラスターDNS

corednsサービスのIPv4クラスターIP。サービスCIDR範囲内である必要があります(デフォルト:10.43.0.10)。

クラスター ドメイン

クラスターのドメインを選択してください。デフォルトは`cluster.local`です。

NodePort Service Port Range

NodePortサービスに使用できるポートの範囲を変更するオプション。デフォルトは`30000-32767`です。

ホスト名を切り捨てる

ホスト名を15文字以下に切り捨てるオプション。このフィールドはクラスターの初期作成時にのみ設定できます。クラスター作成後に15文字の制限を有効または無効にすることはできません。

この設定は、マシンプロビジョニングされたクラスターにのみ影響します。カスタムクラスターは、Rancherの外部でノード作成プロセス中にホスト名を設定するため、このフィールドはカスタムクラスターのホスト名の長さを制限しません。

クラスター内のホスト名を切り捨てることで、Windowsベースのシステムとの互換性が向上します。Kubernetesはホスト名を最大63文字まで許可していますが、NetBIOSを使用するシステムはホスト名を15文字以下に制限します。

TLS代替名

サーバーのTLS証明書にSubject Alternative Namesとしてホスト名またはIPv4/IPv6アドレスを追加します。

スタックの優先設定

クラスターのネットワーキングスタックを選択します。このオプションは次のことに影響します:

  • Calico、etcd、kube-apiserver、kube-scheduler、kube-controller-manager、kubeletなどのコンポーネントのヘルスおよびレディネスプローブに使用されるアドレス。

  • 認可されたクラスターエンドポイントの`authentication-token-webhook-config-file`内のサーバーURL。

  • スナップショット復元中のetcdの`advertise-client-urls`設定。

オプションは`ipv4`、ipv6、`dual`です:

  • `ipv4`に設定すると、クラスターは`127.0.0.1`を使用します。

  • ipv6`に設定すると、クラスターは[::1]`を使用します。

  • `dual`に設定すると、クラスターは`localhost`を使用します。

スタックの優先設定は、クラスターのネットワーキング構成と一致する必要があります:

  • IPv4専用クラスターの場合は`ipv4`に設定します。

  • IPv6専用クラスターの場合は`ipv6`に設定します。

  • デュアルスタッククラスターの場合は`dual`に設定します。

ループバックアドレスの設定が正しいことを確認することは、クラスターのプロビジョニングを成功させるために重要です。 詳細については、ノード要件ページを参照してください。

認可されたクラスターエンドポイント

認可されたクラスターエンドポイントは、Rancherを介さずにKubernetes APIサーバーに直接アクセスするために使用できます。

認可されたクラスターエンドポイントの動作とその使用理由の詳細については、アーキテクチャセクションを参照してください。

認可されたクラスターエンドポイントにはロードバランサーの使用を推奨します。詳細については、推奨アーキテクチャセクションを参照してください。

レジストリ

Rancherのイメージをプルするためのイメージリポジトリを選択してください。詳細および設定オプションについては、 K3sドキュメントを参照してください。

アップグレード戦略

コントロールプレーンの同時実行

同時にアップグレードできるノードの数を選択してください。固定数または割合で指定できます。

ワーカーの同時実行

同時にアップグレードできるノードの数を選択してください。固定数または割合で指定できます。

ノードを排出する(コントロールプレーン)

アップグレード前にノードからすべてのポッドを削除するオプション。

ノードを排出する(ワーカーノード)

アップグレード前にノードからすべてのポッドを削除するオプション。

詳細

異なるノードのためのkubeletオプションを設定するオプション。利用可能なオプションについては、 Kubernetesドキュメントを参照してください。

クラスター構成ファイルリファレンス

YAMLでクラスターを編集することで、Rancher UIの設定オプションに既にリストされている設定を設定したり、Rancher固有のパラメータを設定したりできます。

*例のクラスター設定ファイルのスニペット*を開くにはクリックしてください。

apiVersion: provisioning.cattle.io/v1 kind:クラスター
spec:
cloudCredentialSecretName: cattle-global-data:cc-fllv6
clusterAgentDeploymentCustomization: {}
fleetAgentDeploymentCustomization: {}
kubernetesVersion: v1.26.7+k3s1
localClusterAuthEndpoint: {}
rkeConfig:
additionalManifest: ""
chartValues: {}
etcd:
snapshotRetention:5 snapshotScheduleCron:0 */5 * * *
machineGlobalConfig:
disable-apiserver: false
disable-cloud-controller: false
disable-controller-manager: false
disable-etcd: false
disable-kube-proxy: false
disable-network-policy: false
disable-scheduler: false
etcd-expose-metrics: false
kube-apiserver-arg:
- audit-policy-file=/etc/rancher/k3s/user-audit-policy.yaml
- audit-log-path=/etc/rancher/k3s/user-audit.logs
profile: null
secrets-encryption: false
machinePools:
- controlPlaneRole: true
etcdRole: true
machineConfigRef:
kind:Amazonec2Config name: nc-test-pool1-pwl5h name: pool1 quantity:1
unhealthyNodeTimeout:0s
workerRole: true
machineSelectorConfig:
- config:
docker: false
protect-kernel-defaults: false
selinux: false
machineSelectorFiles:
- fileSources:
- configMap:
name: ''
secret:
name: audit-policy
items:
- key: audit-policy
path: /etc/rancher/k3s/user-audit-policy.yaml
machineLabelSelector:
matchLabels:
rke.cattle.io/control-plane-role: 'true'
registries: {}
upgradeStrategy:
controlPlaneConcurrency:'1'
controlPlaneDrainOptions:
deleteEmptyDirData: true
disableEviction: false
enabled: false
force: false
gracePeriod: -1
ignoreDaemonSets: true
ignoreErrors: false
postDrainHooks: null
preDrainHooks: null
skipWaitForDeleteTimeoutSeconds:0
timeout:120
workerConcurrency:'1'
workerDrainOptions:
deleteEmptyDirData: true
disableEviction: false
enabled: false
force: false
gracePeriod: -1
ignoreDaemonSets: true
ignoreErrors: false
postDrainHooks: null
preDrainHooks: null
skipWaitForDeleteTimeoutSeconds:0
timeout:120

additionalManifest

制御プレーンノードに配信する追加のマニフェストを指定します。

値は文字列で、ターゲットノードのパス`/var/lib/rancher/k3s/server/manifests/rancher/addons.yaml`に配置されます。

例:

additionalManifest: |-
  apiVersion: v1
  kind: Namespace
  metadata:
    name: name-xxxx

システムチャートをカスタマイズしたい場合は、以下に説明する`chartValues`フィールドを使用する必要があります。

`additionalManifest`を介してシステムチャートをカスタマイズするためにHelmChartConfigを使用するなどの代替手段は、同じチャートに対して複数のHelmChartConfigが存在するため、予期しない動作を引き起こす可能性があります。

chartValues

K3sによってインストールされたシステムチャートの値を指定します。

K3sがパッケージ化されたコンポーネントを管理する方法についての詳細は、 K3sのドキュメントを参照してください。

例:

chartValues:
    chart-name:
        key: value

machineGlobalConfig

K3sの設定を指定します。ここで行った設定変更は、すべてのノードに適用されます。k3sの スタンドアロンバージョンで利用可能な設定オプションは、ここに適用できます。

例:

machineGlobalConfig:
    etcd-arg:
        - key1=value1
        - key2=value2

事前にノードにファイルを配置しやすくするために、Rancherは設定に以下の値が含まれることを期待しており、K3sは値をファイルパスとして入力することを期待しています:

  • プライベートレジストリ

  • flannel-conf

Rancherは、ターゲットノードのパス`/var/lib/rancher/k3s/etc/config-files/<option>`にファイルを配信し、K3sサーバーに適切なオプションを設定します。

例:

apiVersion: provisioning.cattle.io/v1
kind: Cluster
spec:
  rkeConfig:
    machineGlobalConfig:
      private-registry: |
        mirrors:
          docker.io:
            endpoint:
              - "http://mycustomreg.com:5000"
        configs:
          "mycustomreg:5000":
            auth:
              username: xxxxxx # this is the registry username
              password: xxxxxx # this is the registry password

machineSelectorConfig

machineSelectorConfig`は`machineGlobalConfigと同じですが、設定にラベルセレクターを指定できます。設定は、提供されたラベルセレクターに一致するノードにのみ適用されます。

複数の`config`エントリが許可されており、それぞれが独自の`machineLabelSelector`を指定します。ユーザーは`matchExpressions`、matchLabels、両方、またはどちらも指定できます。このフィールドの`machineLabelSelector`セクションを省略すると、設定を`machineGlobalConfig`セクションに置くのと同じ効果があります。

例:

machineSelectorConfig
  - config:
      config-key: config-value
    machineLabelSelector:
      matchExpressions:
        - key: example-key
          operator: string # Valid operators are In, NotIn, Exists and DoesNotExist.
          values:
            - example-value1
            - example-value2
      matchLabels:
        key1: value1
        key2: value2

machineSelectorFiles

この機能はRancher v2.7.2以降で利用可能です。

ノードにファイルを配信し、K3sサーバーまたはエージェントプロセスを開始する前にファイルが配置されるようにします。 ファイルの内容は、シークレットまたはコンフィグマップのいずれかから取得されます。ターゲットノードは`machineLabelSelector`によってフィルタリングされます。

例:

machineSelectorFiles:
  - fileSources:
      - secret:
          items:
            - key: example-key
              path: path-to-put-the-file-on-nodes
              permissions: 644 (optional)
              hash: base64-encoded-hash-of-the-content (optional)
          name: example-secret-name
    machineLabelSelector:
      matchExpressions:
        - key: example-key
          operator: string # Valid operators are In, NotIn, Exists and DoesNotExist.
          values:
            - example-value1
            - example-value2
      matchLabels:
        key1: value1
        key2: value2
  - fileSources:
      - configMap:
          items:
            - key: example-key
              path: path-to-put-the-file-on-nodes
              permissions: 644 (optional)
              hash: base64-encoded-hash-of-the-content (optional)
          name: example-configmap-name
    machineLabelSelector:
      matchExpressions:
        - key: example-key
          operator: string # Valid operators are In, NotIn, Exists and DoesNotExist.
          values:
            - example-value1
            - example-value2
      matchLabels:
        key1: value1
        key2: value2

シークレットまたはコンフィグマップは、以下の要件を満たす必要があります:

  1. それは、Clusterオブジェクトが存在する`fleet-default`ネームスペースにある必要があります。

  2. ターゲットクラスターが使用できるようにするアノテーション`rke.cattle.io/object-authorized-for-clusters: cluster-name1,cluster-name2`を必ず備えていなければなりません。

Rancher Dashboardは、シークレットまたはコンフィグマップを作成するための使いやすいフォームを提供します。

例:

apiVersion: v1
data:
  audit-policy: >-
    IyBMb2cgYWxsIHJlcXVlc3RzIGF0IHRoZSBNZXRhZGF0YSBsZXZlbC4KYXBpVmVyc2lvbjogYXVkaXQuazhzLmlvL3YxCmtpbmQ6IFBvbGljeQpydWxlczoKLSBsZXZlbDogTWV0YWRhdGE=
kind: Secret
metadata:
  annotations:
    rke.cattle.io/object-authorized-for-clusters: cluster1
  name: name1
  namespace: fleet-default