这是尚未发布的文档。 SUSE® Virtual Clusters v1.2.0 (Dev).

API 参考

k3k.io/v1beta1

附加

附加组件指定一个包含 YAML 的 Secret,在集群启动时部署。

出现在:

字段 说明 默认值 Validation

secretNamespace 字符串

SecretNamespace 是 Secret 的名称空间。

secretRef 字符串

SecretRef 是 Secret 的名称。

群集

集群定义了一个由 k3k 管理的虚拟 Kubernetes 集群。 它指定了虚拟集群的期望状态,包括版本、节点配置和网络。k3k 使用此信息来配置和管理这些虚拟集群。

出现在:

字段 说明 默认值 Validation

apiVersion 字符串

k3k.io/v1beta1

kind 字符串

Cluster

metadata ObjectMeta

请参阅 Kubernetes API 文档以获取 metadata 的字段。

规格定义了集群的期望状态。

{ }

ClusterList

集群列表是集群资源的列表。

字段 说明 默认值 Validation

apiVersion 字符串

k3k.io/v1beta1

kind 字符串

ClusterList

metadata ListMeta

请参阅 Kubernetes API 文档以获取 metadata 的字段。

items Cluster 数组

ClusterMode

基础类型: 字符串

ClusterMode 是集群的可能配置模式。

验证: - 枚举: [共享虚拟]

出现在:

ClusterPhase

基础类型: 字符串

ClusterPhase 是集群当前生命周期状态的高级摘要。

出现在:

ClusterSpec

ClusterSpec 定义了虚拟 Kubernetes 集群的期望状态。

出现在:

字段 说明 默认值 Validation

version 字符串

版本是用于虚拟节点的 K3s 版本。
它应遵循 K3s 版本命名约定(例如,v1.28.2-k3s1)。
如果未指定,将使用主机节点的 Kubernetes 版本。

模式指定集群配置模式:"共享" 或 "虚拟"。
默认为 "共享"。此字段是不可变的。

shared

枚举: [共享虚拟]

servers 整数

服务器指定以服务器(控制平面)模式运行的 K3s pod 数量。
必须至少为 1。默认值为 1。

1

agents 整数

Agents 指定以代理(工作)模式运行的 K3s pod 数量。
必须为 0 或更大。默认值为 0。
在 "共享" 模式下,此字段被忽略。

0

clusterCIDR 字符串

ClusterCIDR 是 pod IP 的 CIDR 范围。
在共享模式下默认值为 10.42.0.0/16,在虚拟模式下默认值为 10.52.0.0/16。
此字段是不可变的。

serviceCIDR 字符串

ServiceCIDR 是服务 IP 的 CIDR 范围。
在共享模式下默认值为 10.43.0.0/16,在虚拟模式下默认值为 10.53.0.0/16。
此字段是不可变的。

clusterDNS 字符串

ClusterDNS 是 CoreDNS 服务的 IP 地址。
必须在 ServiceCIDR 范围内。默认值为 10.43.0.10。
此字段是不可变的。

persistence PersistenceConfig

Persistence 指定持久化 etcd 数据的选项。
默认值为动态持久化,使用 PersistentVolumeClaim 提供数据持久化。
动态持久化需要一个默认的 StorageClass。

expose ExposeConfig

Expose 指定暴露 API 服务器的选项。
默认情况下,它仅作为 ClusterIP 暴露。

nodeSelector object (keys:string, values:string)

NodeSelector 指定节点标签,以限制服务器/代理 Pod 的调度位置。
在“共享”模式下,这也适用于工作负载。

priorityClass 字符串

PriorityClass 指定服务器/代理 Pod 的 priorityClassName。
在“共享”模式下,这也适用于工作负载。

tokenSecretRef SecretReference

TokenSecretRef是一个包含工作节点用于加入集群的令牌的Secret引用。
Secret必须在其数据中包含一个“token”字段。

tlsSANs 字符串数组

TLSSANs指定K3s服务器证书的主题备用名称。

serverArgs 字符串数组

ServerArgs指定K3s服务器Pod的有序键值对。
示例:["--tls-san=example.com"]

agentArgs 字符串数组

AgentArgs指定K3s代理Pod的有序键值对。
示例:["--node-name=my-agent-node"]

serverEnvs EnvVar 数组

ServerEnvs指定要在服务器Pod中设置的环境变量列表。

agentEnvs EnvVar 数组

AgentEnvs指定要在代理Pod中设置的环境变量列表。

addons Addon 数组

Addons指定包含原始YAML的 Secret,以便在集群启动时部署。

serverLimit ResourceList

ServerLimit指定服务器节点的资源限制。

workerLimit ResourceList

WorkerLimit指定代理节点的资源限制。

mirrorHostNodes 布尔数据类型

MirrorHostNodes 控制来自主集群的节点对象是否被镜像到虚拟集群中
被镜像到虚拟集群中。

customCAs CustomCAs

CustomCAs 指定自定义 CA 证书的证书/密钥对。

sync SyncConfig

Sync 指定将从虚拟集群同步到主集群的资源类型。

{ }

secretMounts SecretMount 数组

SecretMounts指定要挂载到服务器和代理 Pod 的 Secret 列表。
每个条目定义一个 Secret 及其在 Pod 中的挂载路径。

ConfigMapSyncConfig

ConfigMapSyncConfig 指定服务的同步选项。

出现在:

字段 说明 默认值 Validation

enabled 布尔数据类型

Enabled 是一个用于同步资源的开关。

true

selector object (keys:string, values:string)

Selector 指定将被同步的资源的标签集,如果为空,
则所有给定类型的资源将被同步。

CredentialSource

CredentialSource 定义从哪里获取凭证。 它可以表示一个 TLS 密钥对或一个单一的私钥。

出现在:

字段 说明 默认值 Validation

secretName 字符串

Secret 必须包含基于凭证类型的特定键:
- 对于 TLS 证书对(例如,ServerCA):tls.crttls.key.
- 对于 ServiceAccountToken 签名密钥:tls.key.

CredentialSources

凭证来源列出了所有必需的凭证,包括 TLS 密钥对和单一签名密钥。

出现在:

字段 说明 默认值 Validation

serverCA CredentialSource

ServerCA 指定服务器 CA 证书/密钥对。

clientCA CredentialSource

ClientCA 指定客户端 CA 证书/密钥对。

requestHeaderCA CredentialSource

RequestHeaderCA 指定请求头 CA 证书/密钥对。

etcdServerCA CredentialSource

ETCDServerCA 指定 etcd 服务器 CA 证书/密钥对。

etcdPeerCA CredentialSource

ETCDPeerCA 指定 etcd 对等 CA 证书/密钥对。

serviceAccountToken CredentialSource

ServiceAccountToken 指定服务账户令牌密钥。

自定义 CA

自定义 CA 指定自定义 CA 证书的证书/密钥对。

出现在:

字段 说明 默认值 Validation

enabled 布尔数据类型

启用切换此功能的开或关。

true

来源定义所有必需的自定义 CA 证书的来源。

暴露配置

暴露配置指定暴露 API 服务器的选项。

出现在:

字段 说明 默认值 Validation

ingress IngressConfig

Ingress 指定通过 Ingress 暴露 API 服务器的选项。

loadBalancer LoadBalancerConfig

LoadBalancer 指定用于通过 LoadBalancer 服务公开 API 服务器的选项。

nodePort NodePortConfig

NodePort 指定用于通过 NodePort 公开 API 服务器的选项。

IngressConfig

IngressConfig 指定用于通过 Ingress 公开 API 服务器的选项。

出现在:

字段 说明 默认值 Validation

annotations object (keys:string, values:string)

Annotations 指定要添加到 Ingress 的注解。

ingressClassName 字符串

IngressClassName 指定用于 Ingress 的 IngressClass。

IngressSyncConfig

IngressSyncConfig 指定服务的同步选项。

出现在:

字段 说明 默认值 Validation

enabled 布尔数据类型

Enabled 是一个用于同步资源的开关。

false

selector object (keys:string, values:string)

Selector 指定将被同步的资源的标签集,如果为空,
则所有给定类型的资源将被同步。

LoadBalancerConfig

LoadBalancerConfig指定用于通过LoadBalancer服务公开API服务器的选项。

出现在:

字段 说明 默认值 Validation

serverPort 整数

ServerPort 是当类型为 LoadBalancer 时 K3s 服务器公开的端口。
如果未指定,将分配默认的 https 443 端口。
如果为 0 或负数,则该端口将不会被公开。

etcdPort 整数

ETCDPort 是当类型为 LoadBalancer 时 ETCD 服务公开的端口。
如果未指定,将分配默认的 etcd 2379 端口。
如果为 0 或负数,则该端口将不会被公开。

NodePortConfig

NodePortConfig 指定用于通过 NodePort 公开 API 服务器的选项。

出现在:

字段 说明 默认值 Validation

serverPort 整数

ServerPort 是当类型为 NodePort 时每个节点上 K3s 服务器公开的端口。
如果未指定,将分配 30000-32767 之间的随机端口。
如果超出范围,端口将不会被公开。

etcdPort 整数

ETCDPort 是当类型为 NodePort 时每个节点上 ETCD 服务公开的端口。
如果未指定,将分配30000-32767之间的随机端口。
如果超出范围,端口将不会被暴露。

PersistenceConfig

持久化配置指定用于持久化 etcd 数据的选项。

出现在:

字段 说明 默认值 Validation

类型指定持久化模式。

动态

storageClassName 字符串

StorageClassName 是用于 PVC 的 StorageClass 的名称。
此字段仅在“动态”模式下相关。

storageRequestSize Quantity

StorageRequestSize 是 PVC 请求的大小。
此字段仅在“动态”模式下相关。

2G

PersistenceMode

基础类型: 字符串

持久化模式是集群的存储模式。

出现在:

PersistentVolumeClaimSyncConfig

PersistentVolumeClaimSyncConfig 指定服务的同步选项。

出现在:

字段 说明 默认值 Validation

enabled 布尔数据类型

Enabled 是一个用于同步资源的开关。

true

selector object (keys:string, values:string)

Selector 指定将被同步的资源的标签集,如果为空,
则所有给定类型的资源将被同步。

PodSecurityAdmissionLevel

基础类型: 字符串

PodSecurityAdmissionLevel 是应用于命名空间中 Pod 的策略级别。

验证: - 枚举: [特权 基线 受限]

出现在:

PriorityClassSyncConfig

PriorityClassSyncConfig 指定服务的同步选项。

出现在:

字段 说明 默认值 Validation

enabled 布尔数据类型

Enabled 是一个用于同步资源的开关。

false

selector object (keys:string, values:string)

Selector 指定将被同步的资源的标签集,如果为空,
则所有给定类型的资源将被同步。

SecretMount

SecretMount定义一个秘密,以便挂载到服务器或代理Pod中,允许自定义配置、证书或其他敏感数据。

出现在:

字段 说明 默认值 Validation

secretName 字符串

secretName 是要使用的、位于 Pod 命名空间中的 Secret 的名称。
更多信息: https://kubernetes.io/docs/concepts/storage/volumes#secret

items KeyToPath 数组

项目:如果未指定,则引用的 Data 字段中的每个键值对。
Secret 将以文件形式投影到卷中,其文件名为
文件名为 key,内容为对应的值。如果指定,列出的键将被
投影到指定路径中,未列出的键将不会被投影。
存在。如果指定的键在 Secret 中不存在,
卷设置将出错,除非它被标记为可选。路径必须是
相对的,且不能包含 '..' 路径或以 '..' 开头。

defaultMode 整数

defaultMode 是可选的:用于默认设置创建文件权限的模式位。
必须是 0000 到 0777 之间的八进制值或 0 到 511 之间的十进制值。
YAML 接受八进制和十进制值,JSON 要求十进制值
用于模式位。默认值为 0644。
路径中的目录不受此设置的影响。
这可能与其他影响文件的选项冲突,
例如 fsGroup,结果可能会设置其他模式位。

optional 布尔数据类型

可选字段,指定是否必须定义 Secret 或其键。

mountPath 字符串

MountPath 是服务器和代理 Pod 内的路径
密钥内容将被挂载。

subPath 字符串

SubPath 是密钥内的可选路径,用于替代 root 进行挂载。
当指定时,只有密钥中指定的键将作为文件挂载。
在 MountPath 处,保持父目录可写。

role 字符串

Role 是将用于挂载密钥的 k3k Pod 类型。
可以是 'server'、'agent' 或 'all'(两者均可)。

枚举:[server agent all]

SecretSyncConfig

SecretSyncConfig 指定服务的同步选项。

出现在:

字段 说明 默认值 Validation

enabled 布尔数据类型

Enabled 是一个用于同步资源的开关。

true

selector object (keys:string, values:string)

Selector 指定将被同步的资源的标签集,如果为空,
则所有给定类型的资源将被同步。

ServiceSyncConfig

ServiceSyncConfig 指定服务的同步选项。

出现在:

字段 说明 默认值 Validation

enabled 布尔数据类型

Enabled 是一个用于同步资源的开关。

true

selector object (keys:string, values:string)

Selector 指定将被同步的资源的标签集,如果为空,
则所有给定类型的资源将被同步。

SyncConfig

SyncConfig 将包含应从虚拟集群同步到主集群的资源。

出现在:

字段 说明 默认值 Validation

服务资源同步配置。

{ enabled:true }

configMaps ConfigMapSyncConfig

ConfigMaps 资源同步配置。

{ enabled:true }

Secrets 资源同步配置。

{ enabled:true }

ingresses IngressSyncConfig

Ingresses 资源同步配置。

{ enabled:false }

persistentVolumeClaims PersistentVolumeClaimSyncConfig

PersistentVolumeClaims 资源同步配置。

{ enabled:true }

priorityClasses PriorityClassSyncConfig

优先级类资源同步配置。

{ enabled:false }

VirtualClusterPolicy

VirtualClusterPolicy 允许为 clusterpolicy 中的集群定义共同的配置和约束。

出现在:

字段 说明 默认值 Validation

apiVersion 字符串

k3k.io/v1beta1

kind 字符串

VirtualClusterPolicy

metadata ObjectMeta

请参阅 Kubernetes API 文档以获取 metadata 的字段。

Spec 定义了 VirtualClusterPolicy 的期望状态。

{ }

VirtualClusterPolicyList

VirtualClusterPolicyList 是 VirtualClusterPolicy 资源的列表。

字段 说明 默认值 Validation

apiVersion 字符串

k3k.io/v1beta1

kind 字符串

VirtualClusterPolicyList

metadata ListMeta

请参阅 Kubernetes API 文档以获取 metadata 的字段。

items VirtualClusterPolicy 数组

VirtualClusterPolicySpec

VirtualClusterPolicySpec 定义了 VirtualClusterPolicy 的期望状态。

出现在:

字段 说明 默认值 Validation

Quota 指定了 ClusterPolicy 内集群的资源限制。

Limit 指定将应用于 VirtualClusterPolicy 中所有 Pod 的 LimitRange。
以设置默认值和约束(最小/最大)

defaultNodeSelector object (keys:string, values:string)

DefaultNodeSelector 指定适用于目标名称空间中所有集群(服务器 + 代理)的节点选择器。

defaultPriorityClass 字符串

DefaultPriorityClass 指定适用于目标名称空间中所有集群的所有 Pod 的 priorityClassName。

allowedMode ClusterMode

AllowedMode 指定允许的集群配置模式。默认为 "shared"。

shared

枚举: [shared virtual]

disableNetworkPolicy 布尔数据类型

DisableNetworkPolicy 指示是否禁用为集群隔离创建默认网络策略。

podSecurityAdmissionLevel PodSecurityAdmissionLevel

PodSecurityAdmissionLevel 指定适用于名称空间中 Pod 的 Pod 安全准入级别。

枚举:[privileged baseline restricted]

sync SyncConfig

Sync 指定将从虚拟集群同步到主集群的资源类型。

{ }