|
これは未公開の文書です SUSE® Virtual Clusters v1.2.0 (Dev). |
高度な使用方法
このドキュメントは、k3kの高度な使用情報を提供し、カスタマイズのための`Cluster`リソースフィールドの詳細な使用例と説明を含んでいます。
クラスタリソースのカスタマイズ
`Cluster`リソースは、仮想クラスタの動作をカスタマイズするためのさまざまなフィールドを提供します。完全な仕様については、CRDドキュメントを参照してください。
| これらのカスタマイズオプションのほとんどは、`k3kcli`ツールを使用しても構成できます。詳細については、k3kcliドキュメントを参照してください。 |
この例では、次のような「共有」モードのK3kクラスタを作成します:
-
3台のサーバ
-
K3sバージョンv1.31.3-k3s1
-
カスタムネットワーク設定
-
特定のノードへのデプロイメント`nodeSelector`を使用して
-
`kube-api`はイングレスを使用して公開されます。
-
カスタムK3s
serverArgs -
ETCDデータは`PVC`を使用して永続化されます。
apiVersion: k3k.io/v1beta1
kind: Cluster
metadata:
name: my-virtual-cluster
namespace: my-namespace
spec:
mode: shared
version: v1.31.3-k3s1
servers: 3
tlsSANs:
- my-cluster.example.com
nodeSelector:
disktype: ssd
expose:
ingress:
ingressClassName: nginx
annotations:
nginx.ingress.kubernetes.io/ssl-passthrough: "true"
nginx.ingress.kubernetes.io/backend-protocol: "true"
nginx.ingress.kubernetes.io/ssl-redirect: "HTTPS"
clusterCIDR: 10.42.0.0/16
serviceCIDR: 10.43.0.0/16
clusterDNS: 10.43.0.10
serverArgs:
- --tls-san=my-cluster.example.com
persistence:
type: dynamic
storageClassName: local-path
mode
`mode`フィールドは、クラスタプロビジョニングモードを指定し、`shared`または`virtual`のいずれかになります。デフォルトのモードは`shared`です。
-
*`shared`モード:*このモードでは、仮想クラスタはホストクラスタのリソースとネットワークを共有します。このモードは、軽量のワークロードや、隔離が主要な懸念事項でない開発環境に適しています。
-
*`virtual`モード:*このモードでは、仮想クラスタはホストクラスタ内の別のK3sクラスタとして実行されます。このモードは、より強力な隔離を提供し、プロダクションワークロードや専用リソースが必要な場合に適しています。
version
version`フィールドは、仮想ノードで使用されるKubernetesのバージョンを指定します。指定されていない場合、K3kはホストクラスタと同じK3sバージョンを使用します。例えば、ホストクラスタがKubernetes v1.31.3を実行している場合、K3kは対応するK3sバージョン(例:`v1.31.3-k3s1)を使用します。
agents
`agents`フィールドは、仮想クラスタにデプロイするK3sエージェントノードの数を指定します。デフォルト値は「0」です。
| `shared`モードでは、このフィールドは無視されます。なぜなら、Virtual Kubeletがエージェントとして機能し、K3sワーカーノードが存在しないからです。 |
nodeSelector
`nodeSelector`フィールドでは、すべてのサーバー/エージェントポッドに適用されるノードセレクターを指定できます。`shared`モードでは、ノードセレクターはワークロードにも適用されます。
expose
`expose`フィールドには、仮想クラスタのAPIサーバーを公開するためのオプションが含まれています。デフォルトでは、APIサーバーは`ClusterIP`としてのみ公開され、比較的安全ですが、クラスタの外部からアクセスするのは難しいです。
expose`フィールドを使用して、`NodePort、LoadBalancer、または`Ingress`を介しての公開を有効にできます。
この例では、`--enable-ssl-passthrough`フラグで構成する必要があるNginxイングレスコントローラーを使用してクラスタを公開しています。
clusterCIDR
clusterCIDR`フィールドは、クラスタのポッドのCIDR範囲を指定します。デフォルト値は、共有モードで`10.42.0.0/16、仮想モードで`10.52.0.0/16`です。
serviceCIDR
serviceCIDR`フィールドは、クラスタ内のサービスのCIDR範囲を指定します。デフォルト値は、共有モードで`10.43.0.0/16、仮想モードで`10.53.0.0/16`です。
| `shared`モードでは、`serviceCIDR`はホストクラスタの`serviceCIDR`と一致する必要があり、`virtual`モードでは`serviceCIDR`と`clusterCIDR`はホストクラスタとは異なる必要があります。 |
CLIの使用
完全な仕様についてはk3kcliのドキュメントを確認できます。