|
这是尚未发布的文档。 SUSE® Virtual Clusters v1.2.0 (Dev). |
API 参考
k3k.io/v1beta1
附加
附加组件指定一个包含 YAML 的 Secret,在集群启动时部署。
出现在:
| 字段 | 说明 | 默认值 | Validation |
|---|---|---|---|
|
SecretNamespace 是 Secret 的名称空间。 |
||
|
SecretRef 是 Secret 的名称。 |
AppliedPolicy
AppliedPolicy 定义已应用策略的观测状态。
出现在:
| 字段 | 说明 | 默认值 | Validation |
|---|---|---|---|
|
name 是当前应用于此集群的 VirtualClusterPolicy 的名称。 |
MinLength: 1 |
|
|
priorityClass 是由活动的 VirtualClusterPolicy 强制执行的优先级类。 |
||
|
nodeSelector 是由活动的 VirtualClusterPolicy 强制执行的节点选择器。 |
||
|
serverAffinity 是由活动的 VirtualClusterPolicy 强制执行的服务器 Pod 亲和性规则。 |
||
|
agentAffinity 是由活动的 VirtualClusterPolicy 强制执行的代理 Pod 亲和性规则。 |
||
|
sync 是由活动的 VirtualClusterPolicy 强制执行的 SyncConfig。 |
||
|
RuntimeClassName 为 virtual 或 shared 模式下集群的代理和服务器 Pod |
||
|
PodSecurityContext 指定要添加到 virtual 或 shared 模式下集群的代理和服务器 Pod 的 |
||
|
SecurityContext 指定要添加到 virtual 或 shared 模式下集群的代理和服务器容器的 |
||
|
HostUsers 设置服务器 Pod 和代理 Pod 的用户命名空间。 |
群集
集群定义了一个由 k3k 管理的虚拟 Kubernetes 集群。 它指定了虚拟集群的期望状态,包括版本、节点配置和网络。k3k 使用此信息来配置和管理这些虚拟集群。
出现在:
| 字段 | 说明 | 默认值 | Validation |
|---|---|---|---|
|
|
||
|
|
||
|
请参阅 Kubernetes API 文档以获取 |
||
|
规格定义了集群的期望状态。 |
{ } |
|
|
Status 反映集群的观测状态。 |
{ } |
ClusterList
集群列表是集群资源的列表。
| 字段 | 说明 | 默认值 | Validation |
|---|---|---|---|
|
|
||
|
|
||
|
请参阅 Kubernetes API 文档以获取 |
||
|
ClusterSpec
ClusterSpec 定义了虚拟 Kubernetes 集群的期望状态。
出现在:
| 字段 | 说明 | 默认值 | Validation |
|---|---|---|---|
|
版本是用于虚拟节点的 K3s 版本。 |
||
|
Mode 指定集群的配置模式。此字段是不可变的。 |
shared |
Enum: [shared virtual hcp] |
|
服务器指定以服务器(控制平面)模式运行的 K3s pod 数量。 |
1 |
|
|
Agents 指定以代理(工作)模式运行的 K3s pod 数量。 |
0 |
|
|
ClusterCIDR 是 pod IP 的 CIDR 范围。 |
||
|
ServiceCIDR 是服务 IP 的 CIDR 范围。 |
||
|
ClusterDNS 是 CoreDNS 服务的 IP 地址。 |
||
|
Persistence 指定持久化 etcd 数据的选项。 |
||
|
Expose 指定暴露 API 服务器的选项。 |
||
|
NodeSelector 指定节点标签,以限制服务器/代理 Pod 的调度位置。 |
||
|
PriorityClass 指定服务器/代理 Pod 的 priorityClassName。 |
||
|
TokenSecretRef是一个包含工作节点用于加入集群的令牌的Secret引用。 |
||
|
TLSSANs指定K3s服务器证书的主题备用名称。 |
||
|
ServerArgs指定K3s服务器Pod的有序键值对。 |
||
|
AgentArgs指定K3s代理Pod的有序键值对。 |
||
|
ServerEnvs指定要在服务器Pod中设置的环境变量列表。 |
||
|
AgentEnvs指定要在代理Pod中设置的环境变量列表。 |
||
|
Addons指定包含原始YAML的 Secret,以便在集群启动时部署。 |
||
|
ServerLimit指定服务器节点的资源限制。 |
||
|
WorkerLimit指定代理节点的资源限制。 |
||
|
ServerResources 指定服务器节点的资源限制和请求。 |
||
|
WorkerResources 指定工作节点的资源限制和请求。 |
||
|
ServerAffinity 指定服务器 Pod 的亲和性规则。 |
||
|
AgentAffinity 指定代理 Pod 的亲和性规则。 |
||
|
MirrorHostNodes 控制来自主集群的节点对象是否被镜像到虚拟集群中 |
||
|
CustomCAs 指定自定义 CA 证书的证书/密钥对。 |
||
|
Sync 指定将从虚拟集群同步到主集群的资源类型。 |
{ } |
|
|
SecretMounts指定要挂载到服务器和代理 Pod 的 Secret 列表。 |
||
|
PodSecurityContext 指定要添加到 virtual 或 shared 模式下集群的代理和服务器 Pod 的 |
||
|
SecurityContext 指定要添加到 virtual 或 shared 模式下集群的代理和服务器容器的 |
||
|
RuntimeClassName 为 virtual 或 shared 模式下集群的代理和服务器 Pod |
||
|
HostUsers 设置服务器 Pod 和代理 Pod 的用户命名空间。 |
ClusterStatus
ClusterStatus 反映集群的观测状态。
出现在:
| 字段 | 说明 | 默认值 | Validation |
|---|---|---|---|
|
HostVersion 是主机节点的 Kubernetes 版本。 |
||
|
ClusterCIDR 是 pod IP 的 CIDR 范围。 |
||
|
ServiceCIDR 是服务 IP 的 CIDR 范围。 |
||
|
ClusterDNS 是 CoreDNS 服务的 IP 地址。 |
||
|
TLSSANs指定K3s服务器证书的主题备用名称。 |
||
|
PolicyName 指定绑定到虚拟集群的虚拟集群策略名称。 |
||
|
policy 表示应用于此集群的策略的状态。 |
||
|
KubeletPort 指定 k3k-kubelet 在 shared 模式下使用的端口。 |
||
|
Conditions 是为集群设置的各个状况。 |
||
|
Phase 是集群当前生命周期状态的高级摘要。 |
Unknown |
Enum: [Pending Provisioning Ready Failed Terminating Unknown] |
ConfigMapSyncConfig
ConfigMapSyncConfig 指定 ConfigMap 的同步选项。
出现在:
| 字段 | 说明 | 默认值 | Validation |
|---|---|---|---|
|
Enabled 是一个用于同步资源的开关。 |
true |
|
|
Selector 指定将被同步的资源的标签集,如果为空, |
CredentialSource
CredentialSource 定义从哪里获取凭证。 它可以表示一个 TLS 密钥对或一个单一的私钥。
出现在:
| 字段 | 说明 | 默认值 | Validation |
|---|---|---|---|
|
Secret 必须包含基于凭证类型的特定键: |
CredentialSources
凭证来源列出了所有必需的凭证,包括 TLS 密钥对和单一签名密钥。
出现在:
| 字段 | 说明 | 默认值 | Validation |
|---|---|---|---|
|
ServerCA 指定服务器 CA 证书/密钥对。 |
||
|
ClientCA 指定客户端 CA 证书/密钥对。 |
||
|
RequestHeaderCA 指定请求头 CA 证书/密钥对。 |
||
|
ETCDServerCA 指定 etcd 服务器 CA 证书/密钥对。 |
||
|
ETCDPeerCA 指定 etcd 对等 CA 证书/密钥对。 |
||
|
ServiceAccountToken 指定服务账户令牌密钥。 |
自定义 CA
自定义 CA 指定自定义 CA 证书的证书/密钥对。
出现在:
| 字段 | 说明 | 默认值 | Validation |
|---|---|---|---|
|
启用切换此功能的开或关。 |
true |
|
|
来源定义所有必需的自定义 CA 证书的来源。 |
暴露配置
暴露配置指定暴露 API 服务器的选项。
出现在:
| 字段 | 说明 | 默认值 | Validation |
|---|---|---|---|
|
Ingress 指定通过 Ingress 暴露 API 服务器的选项。 |
||
|
LoadBalancer 指定用于通过 LoadBalancer 服务公开 API 服务器的选项。 |
||
|
NodePort 指定用于通过 NodePort 公开 API 服务器的选项。 |
||
|
Annotations 指定要添加到生成的 Service 的注解。 |
IngressConfig
IngressConfig 指定用于通过 Ingress 公开 API 服务器的选项。
出现在:
| 字段 | 说明 | 默认值 | Validation |
|---|---|---|---|
|
Annotations 指定要添加到 Ingress 的注解。 |
||
|
IngressClassName 指定用于 Ingress 的 IngressClass。 |
IngressSyncConfig
IngressSyncConfig 指定 Ingress 的同步选项。
出现在:
| 字段 | 说明 | 默认值 | Validation |
|---|---|---|---|
|
Enabled 是一个用于同步资源的开关。 |
false |
|
|
Selector 指定将被同步的资源的标签集,如果为空, |
||
|
DisableTLSSecretTranslation 是将 TLS Secret 从虚拟集群转换到主集群的 |
false |
LoadBalancerConfig
LoadBalancerConfig指定用于通过LoadBalancer服务公开API服务器的选项。
出现在:
| 字段 | 说明 | 默认值 | Validation |
|---|---|---|---|
|
ServerPort 是当类型为 LoadBalancer 时 K3s 服务器公开的端口。 |
||
|
ETCDPort 是当类型为 LoadBalancer 时 ETCD 服务公开的端口。 |
NodePortConfig
NodePortConfig 指定用于通过 NodePort 公开 API 服务器的选项。
出现在:
| 字段 | 说明 | 默认值 | Validation |
|---|---|---|---|
|
ServerPort 是当类型为 NodePort 时每个节点上 K3s 服务器公开的端口。 |
||
|
ETCDPort 是当类型为 NodePort 时每个节点上 ETCD 服务公开的端口。 |
PersistenceConfig
持久化配置指定用于持久化 etcd 数据的选项。
出现在:
| 字段 | 说明 | 默认值 | Validation |
|---|---|---|---|
|
类型指定持久化模式。 |
dynamic |
|
|
StorageClassName 是用于 PVC 的 StorageClass 的名称。 |
||
|
StorageRequestSize 是 PVC 请求的大小。 |
2G |
PersistentVolumeClaimSyncConfig
PersistentVolumeClaimSyncConfig 指定 PersistentVolumeClaim 的同步选项。
出现在:
| 字段 | 说明 | 默认值 | Validation |
|---|---|---|---|
|
Enabled 是一个用于同步资源的开关。 |
true |
|
|
Selector 指定将被同步的资源的标签集,如果为空, |
PodSecurityAdmissionLevel
基础类型: 字符串
PodSecurityAdmissionLevel 是应用于命名空间中 Pod 的策略级别。
支持的值:privileged、baseline、restricted。
出现在:
PriorityClassSyncConfig
PriorityClassSyncConfig 指定 PriorityClass 的同步选项。
出现在:
| 字段 | 说明 | 默认值 | Validation |
|---|---|---|---|
|
Enabled 是一个用于同步资源的开关。 |
false |
|
|
Selector 指定将被同步的资源的标签集,如果为空, |
SecretMount
SecretMount定义一个秘密,以便挂载到服务器或代理Pod中,允许自定义配置、证书或其他敏感数据。
出现在:
| 字段 | 说明 | 默认值 | Validation |
|---|---|---|---|
|
secretName 是要使用的、位于 Pod 命名空间中的 Secret 的名称。 |
||
|
项目:如果未指定,则引用的 Data 字段中的每个键值对。 |
||
|
defaultMode 是可选的:用于默认设置创建文件权限的模式位。 |
||
|
可选字段,指定是否必须定义 Secret 或其键。 |
||
|
Name 是 Secret 挂载卷的名称,将用作服务器或代理 Pod 的 |
MaxLength: 63 |
|
|
MountPath 是服务器和代理 Pod 内的路径 |
||
|
SubPath 是密钥内的可选路径,用于替代 root 进行挂载。 |
||
|
Role 是将用于挂载 Secret 的 k3k Pod 的类型。 |
Enum: [server agent all] |
SecretSyncConfig
SecretSyncConfig 指定 Secret 的同步选项。
出现在:
| 字段 | 说明 | 默认值 | Validation |
|---|---|---|---|
|
Enabled 是一个用于同步资源的开关。 |
true |
|
|
Selector 指定将被同步的资源的标签集,如果为空, |
ServiceSyncConfig
ServiceSyncConfig 指定 Service 的同步选项。
出现在:
| 字段 | 说明 | 默认值 | Validation |
|---|---|---|---|
|
Enabled 是一个用于同步资源的开关。 |
true |
|
|
Selector 指定将被同步的资源的标签集,如果为空, |
StorageClassSyncConfig
StorageClassSyncConfig 指定 StorageClass 的同步选项。
出现在:
| 字段 | 说明 | 默认值 | Validation |
|---|---|---|---|
|
Enabled 是一个用于同步资源的开关。 |
false |
|
|
Selector 指定将被同步的资源的标签集,如果为空, |
SyncConfig
SyncConfig 将包含应从虚拟集群同步到主集群的资源。
出现在:
| 字段 | 说明 | 默认值 | Validation |
|---|---|---|---|
|
服务资源同步配置。 |
{ enabled:true } |
|
|
ConfigMaps 资源同步配置。 |
{ enabled:true } |
|
|
Secrets 资源同步配置。 |
{ enabled:true } |
|
|
Ingresses 资源同步配置。 |
{ enabled:false } |
|
|
PersistentVolumeClaims 资源同步配置。 |
{ enabled:true } |
|
|
优先级类资源同步配置。 |
{ enabled:false } |
|
|
StorageClasses 资源同步配置。 |
{ enabled:false } |
VirtualClusterPolicy
VirtualClusterPolicy 允许为 clusterpolicy 中的集群定义共同的配置和约束。
出现在:
| 字段 | 说明 | 默认值 | Validation |
|---|---|---|---|
|
|
||
|
|
||
|
请参阅 Kubernetes API 文档以获取 |
||
Spec 定义了 VirtualClusterPolicy 的期望状态。 |
{ } |
||
|
Status 反映 VirtualClusterPolicy 的观测状态。 |
VirtualClusterPolicyList
VirtualClusterPolicyList 是 VirtualClusterPolicy 资源的列表。
| 字段 | 说明 | 默认值 | Validation |
|---|---|---|---|
|
|
||
|
|
||
|
请参阅 Kubernetes API 文档以获取 |
||
|
VirtualClusterPolicySpec
VirtualClusterPolicySpec 定义了 VirtualClusterPolicy 的期望状态。
出现在:
| 字段 | 说明 | 默认值 | Validation |
|---|---|---|---|
|
Quota 指定了 ClusterPolicy 内集群的资源限制。 |
||
|
Limit 指定将应用于 VirtualClusterPolicy 中所有 Pod 的 LimitRange。 |
||
|
DefaultNodeSelector 指定适用于目标名称空间中所有集群(服务器 + 代理)的节点选择器。 |
||
|
DefaultPriorityClass 指定适用于目标名称空间中所有集群的所有 Pod 的 priorityClassName。 |
||
|
DefaultServerAffinity 指定应用于目标名称空间中所有集群的服务器 Pod 的亲和性规则。 |
||
|
DefaultAgentAffinity 指定应用于目标名称空间中所有集群的代理 Pod 的亲和性规则。 |
||
|
AllowedMode 指定允许的集群配置模式。 |
shared |
Enum: [shared virtual hcp] |
|
DisableNetworkPolicy 指示是否禁用为集群隔离创建默认网络策略。 |
||
|
PodSecurityAdmissionLevel 指定适用于名称空间中 Pod 的 Pod 安全准入级别。 |
Enum: [privileged baseline restricted] |
|
|
Sync 指定将从虚拟集群同步到主集群的资源类型。 |
{ } |
|
|
SecurityContext 指定要添加到 virtual 或 shared 模式下集群的代理和服务器 Pod 的 |
||
|
RuntimeClassName 为 virtual 或 shared 模式下集群的代理和服务器 Pod |
||
|
HostUsers 设置服务器 Pod 和代理 Pod 的用户命名空间。 |
VirtualClusterPolicyStatus
VirtualClusterPolicyStatus 反映 VirtualClusterPolicy 的观测状态。
出现在:
| 字段 | 说明 | 默认值 | Validation |
|---|---|---|---|
|
ObservedGeneration 是状态更新时的 generation。 |
||
|
LastUpdate 是上次更新状态的时间戳。 |
||
|
Summary 是状态的摘要。 |
||
|
Conditions 是为集群设置的各个状况。 |