|
この文書は自動機械翻訳技術を使用して翻訳されています。 正確な翻訳を提供するように努めておりますが、翻訳された内容の完全性、正確性、信頼性については一切保証いたしません。 相違がある場合は、元の英語版 英語 が優先され、正式なテキストとなります。 |
SUSE® Rancher Prime: K3s クラスター設定リファレンス
このセクションでは、Rancherで新しいまたは既存のK3s Kubernetesクラスターに利用可能な設定オプションについて説明します。
概要
Kubernetesオプションは、2つの方法のいずれかで設定できます:
-
Rancher UI:Rancher UIを使用して、Kubernetesクラスターを設定する際に一般的にカスタマイズされるオプションを選択します。
-
クラスター設定ファイル:Rancher UIを使用してクラスターのKubernetesオプションを選択する代わりに、上級ユーザーはK3s設定ファイルを作成できます。設定ファイルを使用すると、K3sインストール中に利用可能な オプションのいずれかを設定できます。
Rancher UIでのクラスターの編集
Rancher UIでは、クラスターを編集するための2つの方法を提供しています:
-
フォームを使用して。
-
YAMLを使用して。
フォームを使用したクラスターの編集
このフォームでは、クラスターに最も頻繁に必要なオプションをカバーしています。
クラスターを編集するには、
-
*☰ > クラスター管理*をクリックします。
-
構成したいクラスターに移動し、*⋮ > 設定を編集*をクリックします。
YAMLでのクラスターの編集
K3sクラスターのYAMLでの設定可能オプションの完全なリファレンスについては、 K3sドキュメントを参照してください。
YAMLでクラスターを編集するには:
-
*☰ > クラスター管理*をクリックします。
-
構成したいクラスターに移動し、*⋮ > YAMLとして編集*をクリックします。
-
`rkeConfig`ディレクティブの下にRKEオプションを編集します。
Rancher UIの設定オプション
マシンプールの設定
このサブセクションでは、一般的なマシンプールの設定について説明します。特定のインフラストラクチャプロバイダーの設定については、以下を参照してください:
プール名
マシンプールの名前です。
マシン数
プール内のマシンの数です。
役割
ノードにetcd、コントロールプレーン、ワーカーの役割を割り当てるオプション。
詳細
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のドキュメントを参照してください。
etcd
自動スナップショット
定期的なetcdスナップショットを有効または無効にするオプション。有効にした場合、ユーザーはスナップショットの頻度を設定するオプションがあります。詳細については、 K3sドキュメントを参照してください。
ネットワーキング
クラスター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を有効にすることはできません。 |
NodePort Service Port Range
NodePortサービスに使用できるポートの範囲を変更するオプション。デフォルトは`30000-32767`です。
ホスト名を切り捨てる
ホスト名を15文字以下に切り捨てるオプション。このフィールドはクラスターの初期作成時にのみ設定できます。クラスター作成後に15文字の制限を有効または無効にすることはできません。
この設定は、マシンプロビジョニングされたクラスターにのみ影響します。カスタムクラスターは、Rancherの外部でノード作成プロセス中にホスト名を設定するため、このフィールドはカスタムクラスターのホスト名の長さを制限しません。
クラスター内のホスト名を切り捨てることで、Windowsベースのシステムとの互換性が向上します。Kubernetesはホスト名を最大63文字まで許可していますが、NetBIOSを使用するシステムはホスト名を15文字以下に制限します。
スタックの優先設定
クラスターのネットワーキングスタックを選択します。このオプションは次のことに影響します:
-
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
シークレットまたはコンフィグマップは、以下の要件を満たす必要があります:
-
それは、Clusterオブジェクトが存在する`fleet-default`ネームスペースにある必要があります。
-
ターゲットクラスターが使用できるようにするアノテーション`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