最近更新时间:2024-08-20 19:29:50
通过部署virtual-kubelet创建虚拟节点的方式有两种:
通过ConfigMap配置文件方式(推荐);
通过启动参数与环境变量方式;
具体ConfigMap配置文件参数,以及环境变量、启动参数详情,请参考以下内容:
# 用于连接Kubernetes API server (默认:"~/.kube/config")
kubeconfig: "/root/.kube/config"
# (必填)虚拟节点名称,集群内唯一性校验
nodename:
# 监控pod与其他资源的命名空间(默认:"",表示全部命名空间)
namespace: ""
# 是否启用对Kubelet服务器的匿名请求(默认:true)
anonymousAuth: true
# kubernetes版本大于等于1.13建议启用lease资源用于节点心跳
enableNodeLease: true
server:
listenPort: 10250
serverCertFile: ""
serverKeyFile: ""
openapi:
# KCE集群中临时AK/SK configmap,若未提供用户AccessKey和用户SecretKey则必填
akskConfigMap:
name: "user-temp-aksk"
namespace: "kube-system"
# (必填)地区名称
region: "xxxxxx"
# 用户AccessKey,若已配置akskConfigMap此处不用填写
accessKey: ""
# 用户SecretKey,若已配置akskConfigMap此处不用填写
secretKey: ""
metricsServer:
# 监听 metrics/stats 的请求地址(默认 :":10255")
address: ":10255"
# 从所有实例同步指标的时间间隔(默认:30s)
syncInterval: 30s
# 从所有实例同步summary指标的时间间隔(默认:30s)
summarySyncInterval: 30s
# 设置日志级别,例如:debug、info、warn、error (默认: info)
logLevel: info
# 启动virtual-kubelet的等待时间(默认:0s,表示无限制)
startupTimeout: 1m
# 为虚拟节点自定义标签,示例如下
# customLabels:
# label1:value1
# 禁用虚拟节点污点(false表示开启污点)
disableTaint: false
# 为虚拟节点添加额外污点,示例如下
# taints:
# - key: testkey
# value: testvalue
# effect可选值:NoSchedule、NoExecute、PreferNoSchedule
# effect: NoSchedule
# 虚拟节点容量
capacity:
cpu: "2000"
memory: "1Ti"
pods: "2000"
nvidiaGPU: "2000"
# 管理实例的全局参数
# 是否允许创建特权容器
allowPrivileged: ""
# (必填)集群 ID
clusterId: "xxxxxxxxx"
kciletHeartbeat:
# 最小连续失败阈值,超过此值则被认定为失败(默认0,表示无限制)
failuretThreshold: 0
# 心跳检查kcilet的周期(默认:1m)
period: 1m
# 用于实例内部组件连接到Kubernetes APIServer的kubecconfig的路径
kciletKubeconfigPath: "/root/.kube/config"
# 容器实例pod声明的删除成本,在replicaset缩容时判断删除优先级,数值范围[-2147483648, 2147483647],数值越小表示越优先删除
kciPodDeletionCost:
# (必填)kubernetes集群DNS,若为KCE集群则为集群内coreDNS服务的IP地址
clusterDNS:
- xx.xx.xx.xx
# (必填)集群域名,KCE集群默认为‘cluster.local’
clusterDomain: cluster.local
# 容器实例默认值设置(以下各值可通过在pod annotation中覆盖重写,若不重写则以以下设置值为默认值)
instanceSettings:
# (必填)容器实例所属的安全组,支持1-3个(多个以英文","间隔)
k8s.ksyun.com/kci-security-group-id: " "
# (必填)容器实例部署的子网id,支持1-5个(多个以英文","间隔)
k8s.ksyun.com/kci-subnet-id: " "
# 容器实例所属的项目id
k8s.ksyun.com/kci-project-id: ""
# 在vk级别配置实例主机别名,可用于自建镜像仓库或其他情况
k8s.ksyun.com/kci-host-aliases: ""
# 在vk级别配置实例DNS配置,可用于自建镜像仓库或其他情况
k8s.ksyun.com/kci-dns-config: ""
# 指定虚拟节点所管理的所有实例使用的基础镜像id(默认为最新镜像)
k8s.ksyun.com/kci-base-image: ""
# 匹配机型,可输入多个机型,多个机型以英文逗号间隔,如“S6,N3”,若创建Pod时未通过Annotation指定机型套餐,则会从指定的机型中按顺序依次自动匹配机型套餐
k8s.ksyun.com/kci-instance-family: ""
# 系统盘大小(默认为0,表示不设置此值)
k8s.ksyun.com/kci-base-system-disk-size: "0"
# 系统盘类型(SSD3.0/EHDD)
k8s.ksyun.com/kci-base-system-disk-type: "SSD3.0"
# 计费类型(默认:HourlyInstantSettlement)
k8s.ksyun.com/kci-charge-type: HourlyInstantSettlement
# 实例是否启用kubeproxy(默认:false)
k8s.ksyun.com/kci-kube-proxy-enabled: "false"
# 是否启用内置filebeat sidecar采集日志并输出到金山云Klog服务
k8s.ksyun.com/kci-klog-enabled: "false"
参数 | 含义 | 是否必填 |
---|---|---|
KCI_ACCESS_KEY | 用户AccessKey,如何获取AccessKey,请参考为IAM子用户创建访问密钥 | 否,若未提供TEMP_AKSK_CM则必填 |
KCI_SECRET_KEY | 用户SecretKey,如何获取SecretKey,请参考为IAM子用户创建访问密钥 | 否,若未提供TEMP_AKSK_CM则必填 |
TEMP_AKSK_CM | KCE集群中临时AK/SK configmap name,见kube-system命名空间下,原始名称为user-temp-aksk | 否,若未提供KCI_ACCESS_KEY和KCI_SECRET_KEY则必填 |
KCI_CLUSTER_ID | 集群ID,若该集群是金山云容器服务的集群,则为ClusterId; 若集群是自建集群,则用户自定义一个唯一标识作为集群ID,建议使用uuid格式 | 是,当vk启动参数、configmap中没有配置的时候,KCI_CLUSTER_ID必填 |
KCI_REGION | 地域名称,查询容器实例支持的地域,请参考支持地域 | 否,使用TEMP_AKSK_CM时可不填,使用KCI_ACCESS_KEY和KCI_SECRET_KEY时必填 |
KCI_SUBNET_ID | 容器实例部署的子网 | 是 |
KCI_SECURITY_GROUP_IDS | 容器实例所属的安全组,支持设置多个,请以","分割,最多允许设置3个 | 是 |
KCI_HOST_ALIASES | 若需使用自建镜像仓库,在vk级别配置实例hostAliases,生效于该vk所管理的实例底层系统内,用于解析镜像仓库地址,必须为json字符串格式(参考Adding additional entries with hostAliases) | 否 |
KCI_DNS_CONFIG | 若需使用自建镜像仓库,在vk级别配置实例dnsconfig,生效于该vk所管理的实例底层系统内,用于解析镜像仓库地址,必须为json字符串格式(参考Pod’s DNS Config) | 否 |
VKUBELET_POD_IP | virtual-kubelet的pod的InternalIP,固定值,引入virtual-kubelet的pod.status.podIP | 是 |
KCI_BASE_IMAGE | vk全局指定所管理的所有实例使用的基础镜像(对配置该值后创建的实例生效) | 否 |
KCI_INSTANCE_FAMILY | vk全局指定自动匹配机型,如用户创建Pod时未通过Annotation指定机型套餐,则会根据Pod的规格从自动匹配机型中按顺序依次自动匹配套餐 | 否 |
KCI_PROJECT_ID | vk全局指定所管理的所有实例使用的项目ID(对配置该值后创建的实例生效) | 否 |
参数 | 含义 | 是否必填 |
---|---|---|
nodename | 虚拟节点名称 | 是 |
cluster-dns | kubernetes集群DNS | 是 |
cluster-domain | 集群域名,KCE集群默认为‘cluster.local’ | 是 |
kcilet-kubeconfig-path | 指定集群kubeconfig文件路径,值为kubeconfig volume对应的mountPath | 是 |
enable-node-lease | kubernetes版本大于等于1.13建议启用lease资源用于节点心跳 | 否 |
kci-provider-log-level | 设置日志级别,例如:debug、info、warn、error (默认: info) | 否 |
heartbeat-check-period | 心跳检查kcilet的周期(默认:1m) | 否 |
heartbeat-check-failure-threshold | 最小连续失败阈值,超过此值则被认定为失败(默认0,表示无限制) | 否 |
kube-proxy-enable | 是否开启kube-proxy | 否 |
anonymous-auth | 是否启用对Kubelet服务器的匿名请求(默认:true) | 否 |
base-system-disk-size | 实例系统盘大小,单位GB,范围20-500GB。该值为空时CPU机型默认为20GB,GPU机型默认为50GB | 否 |
podDeletionCost | 容器实例pod声明的删除成本,在replicaset缩容时判断删除优先级,数值范围[-2147483648, 2147483647],数值越小表示越优先删除 | 否 |
纯净模式