华为云用户手册

  • 集群联邦支持的资源及操作 集群联邦支持的Kubernetes资源及相关操作见表1。表内为“√”表明集群联邦支持对该Kubernetes资源进行该操作,表内为“部分支持”表明集群联邦部分支持对该Kubernetes资源进行该操作,表内为空则表明集群联邦不支持对该Kubernetes资源进行该操作。 表1 集群联邦支持的资源及操作 组/版本 资源 GET LIST WATCH CREATE UPDATE PATCH DELETE core/v1 pods √ √ √ √ √ √ √ pods/log √ - - - - - - pods/exec √ - - √ - - - pods/status √ - - - - - - configmaps √ √ √ √ √ √ √ secrets √ √ √ √ √ √ √ services √ √ √ √ √ √ √ nodes √ √ √ - √ √ - namespaces √ √ √ √ √ √ √ endpoints √ √ - - - - - events √ √ - - - - - limitranges √ √ - - - - - resourcequotas √ √ - - - - - persistentvolumeclaims √ √ - - - - - persistentvolumes √ √ - - - - - serviceaccounts √ √ - - - - - admissionregistration.k8s.io/v1 mutatingwebhookconfigurations √ √ - - - - - validatingwebhookconfigurations √ √ - - - - - apiextensions.k8s.io/v1 customresourcedefinitions √ √ √ √ √ √ √ apiregistration.k8s.io/v1 apiservices √ √ - - - - - apps/v1 deployments √ √ √ √ √ √ √ deployments/scale √ - - - √ - - deployments/status √ - - - - - - daemonsets √ √ √ √ √ √ √ daemonsets/status √ - - - - - - statefulsets √ √ √ √ √ √ √ statefulsets/status √ - - - - - - replicasets √ √ - - - - - autoscaling/(v1、v2、v2beta1、v2beta2) horizontalpodautoscalers √ √ √ √ √ √ √ batch/v1 jobs √ √ √ √ √ √ √ jobs/status √ - - - - - - cronjobs √ √ √ √ √ √ √ cronjobs/status √ - - - - - - discovery.k8s.io/v1 endpointslices √ √ - - - - - events.k8s.io/v1 events √ √ - - - - - networking.k8s.io/v1 ingresses √ √ √ √ 部分支持 部分支持 √ ingressclasses √ √ - - - - - networkpolicies √ √ - - - - - policy/(v1、v1beta1) poddisruptionbudgets √ √ √ √ √ √ √ rbac.authorization.k8s.io/v1 clusterrolebindings √ √ √ √ √ √ √ clusterroles √ √ √ √ √ √ √ rolebindings √ √ √ √ √ √ √ roles √ √ √ √ √ √ √ storage.k8s.io/v1 storageclasses √ √ - - - - - 对于集群中的自定义资源,在集群联邦中注册该CRD后,才可支持通过集群联邦入口进行操作。 Ingress对象的UPDATE和PATCH操作仅支持集群联邦控制面中的资源,不支持成员集群中的资源。
  • 通过kubectl连接集群联邦 登录U CS 控制台,单击目标容器舰队名进入“容器舰队信息”页面,在“舰队基本信息”中单击“kubectl”。 图1 kubectl连接信息 参照页面中的提示信息,选择对应的项目名称、虚拟私有云(VPC)、控制节点子网以及有效期,单击“下载”,下载kubectl配置文件。 下载下来的文件名为“舰队名_kubeconfig.json”。 图2 kubectl连接联邦实例 舰队名_kubeconfig.json文件中存在安全泄露风险,请您务必妥善保存。 kubectl配置文件有效期可根据实际需求选择,下拉列表内可选范围为:5年、1年、6个月、30天、15天、14天、13天...1天,最短为1天。 在执行机上安装和配置kubectl。 拷贝kubectl及其配置文件到上述所选的vpc和子网下的执行机的/home目录下。 登录到您的执行机,配置kubectl。 cd /homechmod +x kubectlmv -f kubectl /usr/local/binmkdir -p $HOME/.kubemv -f 舰队名_kubeconfig.json $HOME/.kube/config --请根据实际舰队名修改命令中“舰队名”
  • 设置集群网络类型 需要保证集群的网络类型支持underlay网络,以支持集群间Pod通信。支持underlay网络的集群类型如下: 表2 支持underlay网络的集群类型 集群类型 细分类型 网络类型 是否支持underlay网络 华为云集群/伙伴云集群 CCE集群 容器隧道网络 不支持 VPC网络 支持 CCE Turbo 集群 云原生网络2.0 支持 本地集群 本地集群 同时支持overlay和underlay网络。 默认为overlay网络,要启用underaly网络需要手动配置,underaly网络相关介绍与操作请参见Cilium。 支持 多云集群 多云集群 同时支持overlay和underlay网络。 默认为overlay网络,要启用underaly网络需要手动配置,underaly网络相关介绍与操作请参见Cilium。 支持 附着集群 附着集群 需支持underlay网络 取决于附着集群网络类型
  • 策略实例示例 以下策略实例展示了策略定义生效的资源类型,parameters中的allowedSELinuxOptions定义了参数的允许列表。 apiVersion: constraints.gatekeeper.sh/v1beta1kind: K8sPSPSELinuxV2metadata: name: psp-selinux-v2spec: match: kinds: - apiGroups: [""] kinds: ["Pod"] parameters: allowedSELinuxOptions: - level: s0:c123,c456 role: object_r type: svirt_sandbox_file_t user: system_u
  • 策略实例示例 以下策略实例展示了策略定义生效的资源类型。 apiVersion: constraints.gatekeeper.sh/v1beta1kind: K8sPSPPrivilegedContainermetadata: name: psp-privileged-containerspec: match: kinds: - apiGroups: [""] kinds: ["Pod"] excludedNamespaces: ["kube-system"]
  • 符合策略实例的资源定义 示例中privileged设置为false,符合策略实例。 apiVersion: v1kind: Podmetadata: name: nginx-privileged-allowed labels: app: nginx-privilegedspec: containers: - name: nginx image: nginx securityContext: privileged: false
  • 不符合策略实例的资源定义 示例中privileged设置为true,不符合策略实例。 apiVersion: v1kind: Podmetadata: name: nginx-privileged-disallowed labels: app: nginx-privilegedspec: containers: - name: nginx image: nginx securityContext: privileged: true
  • 不符合策略实例的资源定义 示例中seLinuxOptions参数不在参数列表中,不符合策略实例。 apiVersion: v1kind: Podmetadata: name: nginx-selinux-disallowed labels: app: nginx-selinuxspec: containers: - name: nginx image: nginx securityContext: seLinuxOptions: level: s1:c234,c567 user: sysadm_u role: sysadm_r type: svirt_lxc_net_t
  • 符合策略实例的资源定义 示例中seLinuxOptions参数均在参数列表中,符合策略实例。 apiVersion: v1kind: Podmetadata: name: nginx-selinux-allowed labels: app: nginx-selinuxspec: containers: - name: nginx image: nginx securityContext: seLinuxOptions: level: s0:c123,c456 role: object_r type: svirt_sandbox_file_t user: system_u
  • 策略定义库概述 UCS为您提供了预置的策略定义库,通过这个库,您可以创建具体的策略实例,进而将策略实例定义细节的任务委托给具备专业知识的个人或团队。这种做法不仅实现了关注点的隔离,还将策略实例的逻辑与定义进行了分离。 为了帮助您更好地理解策略定义的工作原理,每个预置策略定义都包含以下三个部分:一个示例策略实例,用于展示如何使用该策略定义;一个违反策略实例的资源定义,用于说明不符合该策略要求的资源样例;一个符合策略实例的资源定义,用于展示满足策略要求的资源样例。这些内容将帮助您更清晰地了解各种策略定义的应用场景及其执行标准。 所有策略实例都包含一个“match”部分,这部分定义了策略实例应用的目标对象。通过“match”部分,您可以精准指定策略实例适用的资源类型、命名空间或其他特定条件,从而确保策略实例仅对满足这些条件的对象起作用。 表1为安全类策略定义,共16个,它们专注于确保集群和资源的安全性;表2为合规类策略定义,总共17个,它们针对不同方面的合规要求。 表1 安全类策略定义 策略定义名称 类型 推荐级别 生效对象 参数 k8spspvolumetypes 安全 L3 Pod volumes:数组 k8spspallowedusers 安全 L3 Pod exemptImages:字符串数组 runAsUser rule:字符串 ranges min:整型 max:整型 runAsGroup rule:字符串 ranges min:整型 max:整型 supplementalGroups rule:字符串 ranges min:整型 max:整型 fsGroup rule:字符串 ranges min:整型 max:整型 k8spspselinuxv2 安全 L3 Pod allowedSELinuxOptions:对象数组,包含level、role、type、user四个字符串对象 exemptImages:字符串数组 k8spspseccomp 安全 L3 Pod allowedLocalhostFiles:数组 allowedProfiles:数组 exemptImages:字符串数组 k8spspreadonlyrootfilesystem 安全 L3 Pod exemptImages:字符串数组 k8spspprocmount 安全 L3 Pod exemptImages:字符串数组 procMount:字符串 k8spspprivilegedcontainer 安全 L3 Pod exemptImages:字符串数组 k8spsphostnetworkingports 安全 L3 Pod exemptImages:字符串数组 hostNetwork max:整型 min:整型 k8spsphostnamespace 安全 L3 Pod 无 k8spsphostfilesystem 安全 L3 Pod allowedHostPaths pathPrefix:字符串 k8spspfsgroup 安全 L3 Pod rule:字符串,支持MayRunAs、MustRunAs和RunAsAny ranges max:整型 min:整型 k8spspforbiddensysctls 安全 L3 Pod allowedSysctls:数组 forbiddenSysctls:数组 k8spspflexvolumes 安全 L3 Pod allowedFlexVolumes:数组 k8spspcapabilities 安全 L3 Pod allowedCapabilities:数组 exemptImages:字符串数组 requiredDropCapabilities:数组 k8spspapparmor 安全 L3 Pod allowedProfiles:数组 exemptImages:字符串数组 k8spspallowprivilegeescalationcontainer 安全 L3 Pod exemptImages:字符串数组 表2 合规类策略定义 策略定义名称 类型 推荐级别 生效对象 参数 k8srequiredprobes 合规 L1 Pod probes:数组 probeTypes:数组 k8srequiredlabels 合规 L1 Deployment labels key / allowedRegex:键值对数组 message:字符串 k8srequiredannotations 合规 L1 Pod annotations key / allowedRegex:键值对数组 message:字符串 k8sreplicalimits 合规 L1 Deployment、ReplicaSet、CronJob ranges min_replicas:整型 max_replicas:整型 noupdateserviceaccount 合规 L1 Pod allowedGroups:数组 allowedUsers:数组 k8simagedigests 合规 L1 Pod exemptImages:字符串数组 k8sexternalips 合规 L1 Service allowedIPs:字符串数组 k8sdisallowedtags 合规 L1 Pod tags:字符串数组 exemptImages:字符串数组 k8srequiredresources 合规 L1 Pod exemptImages:字符串数组 limits cpu memory requests cpu memory k8scontainerratios 合规 L1 Pod ratio:字符串 cpuRatio:字符串 exemptImages:字符串数组 k8scontainerrequests 合规 L1 Pod cpu:字符串 memory:字符串 exemptImages:字符串数组 k8scontainerlimits 合规 L1 Pod cpu:字符串 memory:字符串 exemptImages:字符串数组 k8sblockwildcardingress 合规 L1 Ingress 无 k8sblocknodeport 合规 L1 Service 无 k8sblockloadbalancer 合规 L1 Pod 无 k8spspautomountserviceaccounttokenpod 合规 L1 Pod 无 k8sallowedrepos 合规 L1 Pod repos:字符串数组 父主题: 使用策略定义库
  • k8clone恢复使用方法 k8clone工具支持在Linux(x86、arm)和Windows环境中运行,使用方法相似。本文将以Linux(x86)环境为例进行介绍。 若使用Linux(arm)或Windows环境,请将下述命令中的k8clone-linux-amd64分别替换为k8clone-linux-arm64或k8clone-windows-amd64.exe。 在k8clone工具所在目录下执行./k8clone-linux-amd64 restore -h,可以查看k8clone工具恢复的使用方法。 -k, --kubeconfig:指定kubectl的KubeConfig位置,默认是$HOME/.kube/config。kubeConfig文件:用于配置对Kubernetes集群的访问,KubeConfig文件中包含访问注册Kubernetes集群所需要的认证凭据以及Endpoint(访问地址),详细介绍可参见Kubernetes文档。 -s, --api-server:Kubernetes API Server URL,默认是""。 -q, --context:Kubernetes Configuration Context,默认是""。 -f, --restore-conf:指定restore.json的路径,默认是k8clone工具所在目录下。 -d, --local-dir:备份数据放置的路径,默认是k8clone工具所在目录下。 $ ./k8clone-linux-amd64 restore -hProcessRestore from backupUsage: k8clone restore [flags]Flags: -s, --api-server string Kubernetes api-server url -q, --context string Kubernetes configuration context -h, --help help for restore -k, --kubeconfig string The kubeconfig of k8s cluster's. Default is the $HOME/.kube/config. -d, --local-dir string Where to restore (default "./k8clone-dump.zip") -f, --restore-conf string restore conf file (default "./restore.json") 示例: ./k8clone-linux-amd64 restore -d ./k8clone-dump.zip -f ./restore.json
  • k8clone数据恢复原理 数据恢复的流程参考如下: 图1 数据恢复流程 在执行恢复操作前,需要准备一个数据恢复配置文件“restore.json”,目的是在应用恢复时自动更换PVC、StatefulSet的存储类名称,以及工作负载所使用镜像的Repository地址。 文件内容如下: { "StorageClass": "OldStorageClassName": "NewStorageClassName" //支持修改PVC、StatefulSet的StorageClassName字段 "ImageRepo": "OldImageRepo1": "NewImageRepo1", //eg:"dockerhub.com": "cn-north-4.swr.huaweicloud.com" "OldImageRepo2": "NewImageRepo2", //eg:"dockerhub.com/org1": "cn-north-4.swr.huaweicloud.com/org2" "NoRepo": "NewImageRepo3" //eg:"golang": "swr.cn-north-4.myhuaweicloud.com/paas/golang"} StorageClass:支持PVC、有状态应用VolumeClaimTemplates中存储类名称按照配置进行自动更换。 ImageRepo:支持工作负载所使用镜像的Repository地址的更换,工作负载包括Deployment(含initContainer)、StatefulSet、Orphaned Pod、Job、CronJob、Replica Set、Replication Controller、DaemonSet。
  • 应用恢复操作步骤 通过kubectl连接目标集群。具体方法可参考使用kubectl连接集群。 准备数据恢复配置文件:restore.json。 新建一个restore.json文件,按照格式修改,并将文件放置在k8clone工具所在目录下。 示例: { "StorageClass": { "csi-disk": "csi-disk-new" }, "ImageRepo": { "quay.io/coreos": "swr.cn-north-4.myhuaweicloud.com/paas" }} 进入k8clone工具所在目录,执行恢复命令,将备份数据恢复到目标集群。 示例: ./k8clone-linux-amd64 restore -d ./k8clone-dump.zip -f ./restore.json
  • 存储迁移 若您的集群使用了云硬盘,跨云迁移可以使用华为云数据快递服务 DES。DES服务是一种海量数据传输解决方案,支持TB到几百TB级数据上云,通过Teleport设备或硬盘(外置USB接口、SATA接口、SAS接口)向华为云传输大量数据,致力于解决海量数据传输网络成本高、传输时间长等难题。 若您的集群使用了对象存储,跨云迁移可以使用华为云 对象存储迁移 服务 OMS 。OMS服务是一种线上数据迁移服务,帮助您将其他云服务商对象存储中的数据在线迁移至华为云的 对象存储服务 OBS中。 若您的集群使用了文件存储,跨云迁移可以使用华为云弹性文件服务 SFS,具体请参见数据迁移。
  • 存储迁移 若您的集群使用本地存储,迁移上云可以使用华为云数据快递服务 DES。DES服务是一种海量数据传输解决方案,支持TB到几百TB级数据上云,通过Teleport设备或硬盘(外置USB接口、SATA接口、SAS接口)向华为云传输大量数据,致力于解决海量数据传输网络成本高、传输时间长等难题。 若您的集群对接了对象存储,且需同步搬迁至云上,可以使用华为云对象存储迁移服务 OMS,帮助您将对象存储中的数据在线迁移至华为云对象存储服务 OBS。 若您的集群使用文件存储,迁移上云可以使用华为云弹性文件服务 SFS,具体请参见数据迁移。
  • 创建工作负载时设置 创建Deployment、StatefulSet、DaemonSet等不同类型的工作负载时添加Service的方法一致。 参考创建无状态负载、创建有状态负载或创建守护进程集,在服务配置步骤,单击,进行工作负载服务配置。 Service名称:服务名称,可自定义,取值范围为1-50字符。 访问类型:选择“集群内访问 ClusterIP”。 端口配置: 协议:TCP或UDP,请根据业务的协议类型选择。 服务端口:容器端口映射到集群虚拟IP上的端口,用虚拟IP访问应用时使用,端口范围为1-65535,可任意指定。 容器端口:容器镜像中应用程序实际监听的端口,需用户确定。例如:nginx程序实际监听的端口为80。 图1 工作负载服务配置 设置完成后,单击“确认”。 单击“下一步:调度与差异化”,进行集群调度与差异化配置。设置完成后,单击“创建工作负载”完成创建。 获取访问地址。 单击左侧导航栏“服务与路由”,选择“服务”页签。 单击所添加的Service名称进入“服务详情”界面,获取部署集群的访问地址。
  • 创建工作负载后设置 登录UCS控制台,在左侧导航栏中选择“容器舰队”。 在“容器舰队”页签下找到已开通集群联邦的舰队,单击名称进入详情页。 在左侧导航栏中选择“服务与路由”,选择“服务”页签。 选择服务所在命名空间,并单击右上角“创建服务”。如需新建命名空间,请参见创建命名空间。 设置访问参数。 图2 创建服务 Service名称:自定义服务名称,可与工作负载名称保持一致。 访问类型:选择“集群内访问 ClusterIP”。 端口配置: 协议:TCP或UDP,请根据业务的协议类型选择。 服务端口:容器端口映射到集群虚拟IP上的端口,用虚拟IP访问应用时使用,端口范围为1-65535,可任意指定。 容器端口:容器镜像中应用程序实际监听的端口,需用户确定。例如:nginx程序实际监听的端口为80。 命名空间:服务所在命名空间。 选择器:服务通过选择器与负载(标签)关联。单击“引用负载标签”,可选择已有的工作负载。 负载类型:选择需要关联的负载类型。 工作负载:选择一个已有的工作负载。如工作负载列表未显示,请单击刷新。 标签:选择工作负载后自动获取对应的标签,不可修改。 图3 引用负载标签 单击“确认”。创建成功后可在“服务”页签的列表中查看。
  • 关联权限 登录UCS控制台,在左侧导航栏中选择“容器舰队”。 选择“未加入舰队的集群”页签,在目标集群栏中单击右上角的按钮。 图1 集群列表 在弹出的页面单击“关联权限”,打开“修改权限”页面,将已创建好的权限和集群的命名空间关联起来。 命名空间:支持“全部命名空间”和“指定命名空间”。全部命名空间包括当前集群已有的命名空间和集群后续新增的命名空间;“指定命名空间”即表示您自己选择命名空间的范围,UCS服务提供了几个常见的命名空间供您选择(如default、kube-system、kube-public),您也可以新增命名空间,但要自行确保新增的命名空间在集群中存在。 请注意,选择的命名空间仅对权限中命名空间级资源生效,不影响权限中的集群资源。关于命名空间级和集群级资源的介绍,请参见Kubernetes资源对象章节。 关联权限:从下拉列表中选择权限,支持一次性选择多个权限,以达到批量授权的目的。 如果针对不同命名空间,关联的权限不同(例如:为default命名空间关联readonly权限,为development命名空间关联develop权限),可以单击按钮添加多组授权关系。 单击“确定”,完成权限的关联。 如果后续需要修改集群的权限,采用同样的方法,重新选择命名空间和权限即可。
  • 相关操作 通过UCS控制台,您还可以执行表1中的操作。 表1 相关操作 操作 说明 YAML创建 单击右上角“YAML创建”,可使用已有的YAML创建服务。 查看详情 选择服务所在的命名空间。 (可选)根据服务名称进行搜索。 单击服务名称即可查看服务详情,包括基本信息以及各集群的部署信息。 在服务详情页的部署集群栏中单击“查看YAML”,可查看各个集群中部署的服务实例YAML,并支持下载。 编辑YAML 单击服务名称后的“编辑YAML”,可查看并编辑当前服务的YAML文件。 更新 单击服务名称后的“更新”。 根据服务参数更改信息。 单击“确认”提交已修改的信息。 删除 单击服务名称后的“删除”,并单击“是”进行确认。 批量删除 勾选需要删除的服务。 单击左上角的“批量删除”。 单击“是”进行确认。
  • 注销集群 登录UCS控制台,在左侧导航栏中单击“容器舰队”。 选择“未加入舰队的集群”页签,在目标集群栏中单击右上角的按钮。 弹出“注销集群”对话框,仔细阅读注意事项,确认风险后单击“确定”。 (可选)对于附着集群来说,注销集群成功后,还需前往目标集群卸载代理组件。 kubectl -n kube-system delete deployments/proxy-agent secret/proxy-agent-cert (可选)对于本地集群来说,注销集群成功后,您可以手动执行卸载命令,在本地主机环境中删除集群,清理资源: ./ucs-ctl delete cluster [集群名称] 如果命令执行失败,请参考如何手动清理本地集群节点?处理。
  • GPU调度概述 工作负载支持使用节点GPU资源,GPU资源使用可以分为如下两种模式: GPU静态分配(共享/独享):按比例给Pod分配GPU显卡资源,支持独享(分配单张/多张显卡)和共享(部分显卡)方式。 GPU虚拟化:UCS On Premises GPU采用xGPU虚拟化技术,能够动态对GPU设备显存与算力进行划分,单个GPU卡最多虚拟化成20个GPU虚拟设备。相对于静态分配来说,虚拟化的方案更加灵活,最大程度保证业务稳定的前提下,可以完全由用户定义使用的GPU数量,提高GPU利用率。 GPU虚拟化功能优势如下: 灵活:精细配置GPU算力占比及显存大小,算力分配粒度为5%GPU,显存分配粒度达MB级别。 隔离:支持显存和算力的严格隔离,支持单显存隔离,算力与显存同时隔离两类场景。 兼容:业务无需重新编译,无需进行CUDA库替换,对业务无感。 父主题: GPU调度
  • 添加方式 登录UCS控制台,在左侧导航栏中选择“容器舰队”。 在“容器舰队”页签下找到已开通集群联邦的舰队,单击名称进入详情页。 在左侧导航栏中选择“服务与路由”,选择“服务”页签。 选择服务所在命名空间,并单击右上角“创建服务”。如需新建命名空间,请参见创建命名空间。 设置访问参数。 图1 创建服务 Service名称:服务名称,可自定义,取值范围为1-50字符。 访问类型:选择“负载均衡 LoadBalancer”。 服务亲和: 集群级别:集群下所有节点的IP+访问端口均可以访问到此服务关联的负载,服务访问会因路由跳转导致一定性能损失,且无法获取到客户端源IP。 节点级别:只有通过负载所在节点的IP+访问端口才可以访问此服务关联的负载,服务访问没有因路由跳转导致的性能损失,且可以获取到客户端源IP。 端口配置: 协议:TCP或UDP,请根据业务的协议类型选择。 服务端口:容器端口映射到负载均衡实例的端口,通过负载均衡对外暴露服务时使用,端口范围为1-65535,可任意指定。 容器端口:容器镜像中应用程序实际监听的端口,需用户确定。例如:nginx程序实际监听的端口为80。 部署集群:选择负载均衡部署的集群,并完成负载均衡的差异化设置。 图2 添加部署集群 CCE集群: 负载均衡器:仅支持集群所在VPC下的负载均衡实例。 分配策略: 加权轮询算法:根据不同的权重将请求分配到后端服务器。 加权最少连接:将请求分发给(当前连接/权重)比值最小的后端服务器进行处理。 源IP算法:将客户端IP请求固定分配给一台服务器,实现获取同一个session。 会话保持类型:默认不启用,可选择“源IP地址”。负载均衡监听是基于IP地址的会话保持,即来自同一IP地址的访问请求转发到同一台后端服务器上。 健康检查:默认不启用。此处健康检查是设置负载均衡的健康检查配置,支持TCP和HTTP协议,其参数详细解释参见表1。 表1 健康检查参数说明 参数 说明 示例 检查路径 当“协议”为HTTP时设置。指定健康检查的URL地址的路径。检查路径只能以/开头,长度范围[1-80]。 / 端口 健康检查端口号,取值范围[1,65535]。 健康检查默认使用业务端口(Service的NodePort和容器端口)作为健康检查的端口。 80 检查周期 每次健康检查响应的最大间隔时间。 取值范围[1-50]。 5 超时时间(秒) 每次健康检查响应的最大超时时间。 取值范围[1-50]。 10 最大重试次数 健康检查最大的重试次数,取值范围[1-10]。 5 其他云:访问注释支持key/value对格式,请您根据自身业务以及厂家要求进行注解配置。 命名空间:服务所在命名空间。 选择器:服务通过选择器与负载(标签)关联。单击“引用负载标签”,可选择已有的工作负载。 负载类型:选择需要关联的负载类型。 工作负载:选择一个已有的工作负载。如工作负载列表未显示,请单击刷新。 标签:选择工作负载后自动获取对应的标签,不可修改。 图3 引用负载标签 单击“确认”。 获取访问地址。 单击左侧导航栏“服务与路由”,选择“服务”页签。 单击所添加的Service名称进入“服务详情”界面,获取部署集群的访问地址。您可以通过负载均衡的弹性IP地址 + 端口的形式访问后端负载。
  • 相关操作 通过UCS控制台,您还可以执行表2中的操作。 表2 相关操作 操作 说明 YAML创建 单击右上角“YAML创建”,可使用已有的YAML创建服务。 查看详情 选择服务所在的命名空间。 (可选)根据服务名称进行搜索。 单击服务名称即可查看服务详情,包括基本信息以及各集群的部署信息。 在服务详情页的部署集群栏中单击“查看YAML”,可查看各个集群中部署的服务实例YAML,并支持下载。 编辑YAML 单击服务名称后的“编辑YAML”,可查看并编辑当前服务的YAML文件。 更新 单击服务名称后的“更新”。 根据服务参数更改信息。 单击“确认”提交已修改的信息。 删除 单击服务名称后的“删除”,并单击“是”进行确认。 批量删除 勾选需要删除的服务。 单击左上角的“批量删除”。 单击“是”进行确认。
  • 创建存储卷声明 登录UCS控制台,在左侧导航栏中选择“容器舰队”。 在“容器舰队”页签下找到已开通集群联邦的舰队,单击名称进入详情页。 在左侧导航栏中选择“容器存储”,在“存储卷声明PVC”页签下单击右上角“创建存储卷声明”。 设置通用配置参数。 名称:新建存储卷声明名称,命名必须唯一。 命名空间:新建存储卷声明所属的命名空间,默认配置为default。 部署集群:单击,选择存储要部署的集群。 图1 添加部署集群 华为云集群:添加部署集群参数说明请参见表1。 非华为云集群:添加部署集群参数说明请参见表2。 表1 添加部署华为云集群 参数 参数说明 集群 选择部署集群为华为云集群。 存储类 csi-disk:即云硬盘EVS,需指定存储可用区和云硬盘类型。 可用区:云硬盘所在的可用区,不同可用区下支持的云硬盘类型可能存在差异。 云硬盘类型:可选择普通IO、高IO或超高IO,不同IO类型对应的存储类型依次为SATA、SAS、SSD。 csi-nas:即文件存储SFS。 csi-obs:即 对象存储OBS ,需指定实例类型和对象存储类型,并添加访问密钥。 实例类型:对象桶或并行文件系统。并行文件系统是OBS经过优化的高性能文件系统,提供更高性能的对象访问。 对象存储类型:标准存储和低频访问存储。低频访问存储是高可靠、较低成本的实时访问存储服务,适用于不频繁访问(平均一年少于12次)的场景,例如文件同步/共享、企业备份。 访问模式 选择csi-disk(云硬盘)时,访问模式为ReadWriteOnce (RWO),即存储卷只能以读写模式被单个节点同时加载。 选择csi-nas(文件存储)或csi-obs(对象存储)时,访问模式为ReadWriteMany (RWX),即存储卷能够以读写模式被多个节点同时加载。 容量(GiB) 新建存储的容量,容量不能小于10GiB。 仅选择csi-disk(云硬盘)和csi-nas(文件存储)时可设置;选择csi-obs(对象存储)时为按需使用,无需设置容量。 表2 添加部署非华为云集群 参数 参数说明 集群 选择部署集群为非华为云集群。 存储类 集群支持的存储类(StorageClass)取决于注册集群的实际环境,相关内容请参见存储类。 访问模式 ReadWriteOnce (RWO):即存储卷只能以读写模式被单个节点同时加载。 ReadWriteMany (RWX):即存储卷能够以读写模式被多个节点同时加载。 容量(GiB) 新建存储的容量,容量不能小于10GiB。 注解 输入键、值后单击“添加”,对应的注解将以Key/value键值对的形式附加到存储卷声明对象上。 重复添加,可对多个集群进行差异化的存储卷声明设置。 单击“确认”创建成功后,可单击PVC名称查看存储卷声明详情。
  • 相关操作 通过UCS控制台,您还可以执行表3中的操作。 表3 相关操作 操作 说明 YAML创建 单击右上角“YAML创建”,可使用已有的YAML创建服务。 查看详情 选择PVC所在的命名空间。 (可选)根据PVC名称进行搜索。 单击PVC名称即可查看存储卷声明详情,包括基本信息以及各集群的部署信息。 在存储卷声明详情页的部署集群栏中单击“查看YAML”,可查看各个集群中部署的PVC实例YAML,并支持下载。 查看YAML 单击PVC名称后的“查看YAML”,可查看当前PVC的YAML文件。 更新(存储卷声明PVC扩容) 单击PVC名称后的“更新”。 根据PVC参数更改部署集群参数,或单击“扩容”调整存储卷容量大小。 单击“确认”提交已修改的信息。 删除 单击PVC名称后的“删除”,并单击“是”进行确认。 批量删除 勾选需要删除的PVC。 单击左上角的“批量删除”。 单击“是”进行确认。
  • 接入集群 登录UCS控制台,在“等待接入”状态下的目标集群栏中单击“单击接入”,选择“私网接入”。 选择项目,再选择购买终端节点中创建的终端节点。 下载集群代理agent的配置文件。 集群代理配置存在私有密钥信息,每个集群代理配置仅能下载一次,请您妥善保管。 将步骤3中的agent配置文件上传至节点。 单击“安装集群代理agent配置”,在待接入集群中执行如下命令,可单击右侧直接复制命令。 图3 安装集群代理agent配置 私网接入的集群无法通过私网下载SWR镜像仓库中的镜像,请确保工作负载运行的节点可访问公网。 拉取proxy-agent容器镜像要求集群需要具备公网访问能力,或将proxy-agent镜像上传至集群可访问的镜像仓库,否则将导致proxy-agent部署失败。 前往UCS控制台刷新集群状态,集群处于“运行中”。
  • 查看集群详情 集群详情页面提供了单个集群的监控情况,包含资源概况、资源消耗TOP统计和用量统计多维度的信息概况。通过集群监控您可以及时了解集群的资源使用情况和趋势,快速响应可能存在的风险项,保证集群流畅运行。 您可以将鼠标悬停在图表上,以便查看每分钟的监控数据。 图1 集群详情页面 表1 集群详情页面 词条 词条简介 集群健康度 资源健康度评估包括多个维度,如健康评分、待处理风险项数、风险等级,以及诊断风险项在Master、集群、节点、工作负载和外部依赖五个方面的占比(异常数据使用红色突出显示)。欲了解更多诊断结果,请前往健康诊断页面查看。 须知: 当集群所安装的kube-prometheus-stack插件的部署模式为“Server模式”时,方可以查看集群的资源健康度。 资源健康概况 资源概况涵盖了节点、工作负载和容器组三类资源中异常资源所占比例,以及命名空间的总数。此外,还包括了控制面组件和Master节点的异常占比、API Server总QPS以及API Server请求错误率。 作为集群的 API服务 提供者,控制面API Server的异常可能会导致整个集群无法访问,同时也会影响依赖API Server的工作负载的正常运行。为了帮助您快速识别和修复问题,资源概况中提供了API Server的总QPS和请求错误率指标。 资源消耗Top统计 在资源消耗TOP统计中,UCS服务会将CPU使用率和内存使用率排名前五的节点、无状态负载、有状态负载和Pod纳入统计范围,以帮助您识别资源消耗“大户”。 说明: CPU使用率 工作负载CPU使用率 = 工作负载各个Pod中CPU使用率的平均值 Pod CPU使用率 = Pod实际使用的CPU核数 / 业务容器CPU核数限制值之和(未配置限制值时采用节点总量) 内存使用率 工作负载内存使用率 = 工作负载各个Pod中内存使用率的平均值 Pod内存使用率 = Pod实际使用的物理内存 / 业务容器物理内存限制值之和(未配置限制值时采用节点总量) 数据面监控 此处默认统计近1小时、近8小时和近24小时的各维度资源用量。如需查看更多监控信息,请单击“查看全部监控”,跳转至“仪表盘”页面,相应指导请参见仪表盘。
  • 注册集群 登录UCS控制台。 在左侧导航栏中选择“容器舰队”,单击附着集群选项卡中的“注册集群”按钮。 参考表1填写待添加集群的基础信息,其中带“*”的参数为必填参数。 表1 注册集群基础信息配置 参数 参数说明 集群名称* 输入集群的自定义名称,需以小写字母开头,由小写字母、数字、中划线(-)组成,且不能以中划线(-)结尾。 集群服务商* 选择一个集群服务商。 所属区域* 选择集群所在的区域。 集群标签 非必填项,以键值对的形式为集群添加标签,可以通过标签实现集群的分类。键值对可自定义,以字母或者数字开头和结尾,由字母、数字、连接符(-)、下划线(_)、点号(.)组成,且63个字符之内。 上传KubeConfig* 上传kubectl的配置文件来完成集群认证,支持JSON或YAML格式。获取KubeConfig文件的操作步骤因厂商而异,请参见KubeConfig。 选择Context* 选择对应的Context。在完成KubeConfig文件上传后,选项列表将自动获取文件中的“contexts”字段。 默认值为KubeConfig文件中“current-context”字段指定的Context,若文件中无此字段则需要从列表中手动选择。 容器舰队 选择集群所属的舰队。 舰队用于权限精细化管理,一个集群只能加入一个舰队。若不选择舰队,集群注册成功后将显示在“未加入舰队的集群”页签下,后续还可以再添加至舰队中。 不支持在注册集群阶段选择已开通集群联邦能力的舰队,如果一定要加入这个舰队,请在集群注册成功后,再添加到该舰队中。关于集群联邦的介绍,请参见开通集群联邦章节。 如需新建舰队,请参见管理容器舰队。 单击“确定”,集群注册成功后如图1所示,请在30分钟内接入网络。您可选择集群的接入方式或单击右上角按钮查看详细的网络接入流程。 如您未在30分钟内接入网络,将会导致集群注册失败,可单击右上角按钮重新注册集群。如果已经接入但数据未采集上来,请等待2分钟后刷新集群。 图1 集群等待接入状态
  • 购买终端节点 登录 VPC终端节点 控制台,单击“购买终端节点”。 选择终端节点的区域。 选择“按名称查找服务”,输入服务名称“cn-north-4.open-vpcep-svc.29696ab0-1486-4f70-ab35-a3f6b1b37c02”,并单击“验证”。 图2 购买终端节点 选择准备网络环境中与集群网络连通的虚拟私有云以及对应的子网。 根据需求选择终端节点的“节点IP”为“自动分配”或“手动分配”。 配置完其他参数后,单击“立即购买”,并进行规格确认。 规格确认无误,单击“提交”,任务提交成功。 参数信息配置有误,需要修改,单击“上一步”,修改参数,然后单击“提交”。
  • 前提条件 已创建一个准备接入UCS的集群,并且集群状态正常。 在UCS提供服务的区域中创建一个VPC,具体操作请参见创建虚拟私有云和子网,当前仅支持“华北-北京四”区域。 该VPC子网网段不能与IDC或第三方云中已使用的网络网段重叠,否则将无法接入集群。例如,IDC中已使用的VPC子网为192.168.1.0/24,那么华为云VPC中不能使用192.168.1.0/24这个子网。 已获取待添加集群的KubeConfig文件,具体操作步骤因厂商而异,请参见KubeConfig。关于KubeConfig文件的更多说明请参考使用kubeconfig文件组织集群访问。
共99354条