华为云用户手册

  • 权限说明 云原生日志采集插件中的fluent-bit组件会根据用户的采集配置,读取各节点上容器标准输出、容器内文件日志以及节点日志并采集。 fluent-bit组件运行会使用到以下权限: CAP_DAC_OVERRIDE:忽略文件的 DAC 访问限制。 CAP_FOWNER:忽略文件属主 ID 必须和进程用户 ID 相匹配的限制。 DAC_READ_SEARCH:忽略文件读及目录搜索的 DAC 访问限制。 SYS_PTRACE:允许跟踪任何进程。
  • image-migrator config使用方法 image-migrator工具的config子命令可用于获取集群应用中使用的镜像,在工具所在目录下生成images.json。执行./image-migrator-linux-amd64 config -h命令可以查看config子命令的使用方法。 -k, --kubeconfig:指定kubectl的KubeConfig位置,默认是$HOME/.kube/config。kubeConfig文件:用于配置对Kubernetes集群的访问,KubeConfig文件中包含访问注册kubernetes集群所需要的认证凭据以及Endpoint(访问地址),详细介绍可参见Kubernetes文档。 -n, --namespaces:指定获取镜像的命名空间,多个命名空间用逗号分隔(如:ns1,ns2,ns3),默认是"",表示获取所有命名空间的镜像。 -t, --repo:指定目标仓库的地址(registry/namespace)。 $ ./image-migrator-linux-amd64 config -h generate images.json Usage: image-migrator config [flags] Flags: -h, --help help for config -k, --kubeconfig string The kubeconfig of k8s cluster's. Default is the $HOME/.kube/config. (default "/root/.kube/config") -n, --namespaces string Specify a namespace for information collection. If multiple namespaces are specified, separate them with commas (,), such as ns1,ns2. default("") is all namespaces -t, --repo string target repo,such as swr.cn-north-4.myhuaweicloud.com/test 示例如下: 指定一个命名空间 ./image-migrator-linux-amd64 config -n default -t swr.cn-north-4.myhuaweicloud.com/test 指定多个命名空间 ./image-migrator-linux-amd64 config -n default,kube-system -t swr.cn-north-4.myhuaweicloud.com/test 不指定命名空间(表示获取所有命名空间的镜像) ./image-migrator-linux-amd64 config -t swr.cn-north-4.myhuaweicloud.com/test
  • image-migrator使用方法 image-migrator工具支持在Linux(x86、arm)和Windows环境中运行,使用方法相似。本文将以Linux(x86)环境为例进行介绍。 若使用Linux(arm)或Windows环境,请将下述命令中的image-migrator-linux-amd64分别替换为image-migrator-linux-arm64或image-migrator-windows-amd64.exe。 在image-migrator工具所在目录下执行./image-migrator-linux-amd64 -h,可以查看image-migrator工具的使用方法。 --auth:指定auth.json的路径,默认在image-migrator所在目录下。 --images:指定images.json的路径,默认在image-migrator所在目录下。 --log:指定image-migrator生成日志的路径,默认是image-migrator当前目录下的image-migrator.log。 --namespace:默认的目标仓库的namespace,也就是说,如果images.json中没有指定目标仓库中的namespace,可以在执行迁移命令时指定。 --registry:默认的目标仓库的registry,也就是说,如果images.json中没有指定目标仓库中的registry,可以在执行迁移命令时指定。 --retries:迁移失败时的重试次数,默认为3。 --workers:镜像搬迁的worker数量(并发数),默认是7。 $ ./image-migrator-linux-amd64 -h A Fast and Flexible docker registry image images tool implement by Go. Usage: image-migrator [flags] Aliases: image-migrator, image-migrator Flags: --auth string auth file path. This flag need to be pair used with --images. (default "./auth.json") -h, --help help for image-migrator --images string images file path. This flag need to be pair used with --auth (default "./images.json") --log string log file path (default "./image-migrator.log") --namespace string default target namespace when target namespace is not given in the images config file, can also be set with DEFAULT_NAMESPACE environment value --registry string default target registry url when target registry is not given in the images config file, can also be set with DEFAULT_REGISTRY environment value -r, --retries int times to retry failed tasks (default 3) -w, --workers int numbers of working goroutines (default 7) $./image-migrator --workers=5 --auth=./auth.json --images=./images.json --namespace=test \ --registry=swr.cn-north-4.myhuaweicloud.com --retries=2 $ ./image-migrator Start to generate images tasks, please wait ... Start to handle images tasks, please wait ... Images(38) migration finished, 0 images tasks failed, 0 tasks generate failed 示例如下: ./image-migrator --workers=5 --auth=./auth.json --images=./images.json --namespace=test --registry=swr.cn-north-4.myhuaweicloud.com --retries=2 该命令表示将“images.json”文件中的镜像迁移至“swr.cn-north-4.myhuaweicloud.com/test”镜像仓库下,迁移失败时可以重试2次,一次可以同时搬迁5个镜像。
  • 镜像迁移操作步骤 准备镜像仓库访问权限文件:auth.json。 新建一个auth.json文件,并按照格式修改,如果是匿名访问仓库,则不需要填写用户名、密码等信息。将文件放置在image-migrator所在目录下。 示例: { "quay.io/coreos": { }, "swr.cn-north-4.myhuaweicloud.com": { "username": "cn-north-4@RVHVMX******", "password": "***************", "insecure": true } } 详细的参数说明请参见“auth.json”文件。 准备镜像列表文件:images.json。 通过kubectl连接源集群。具体方法可参考使用kubectl连接集群。 执行镜像迁移config子命令,生成images.json文件。 您可以参考image-migrator config使用方法中的方法和示例,不指定命名空间,或者指定一个、多个命名空间来获取源集群应用中使用的镜像。 根据需求调整images.json文件内容,但要遵循“images.json”文件中所讲的八项要求。 镜像迁移。 您可以执行默认的./image-migrator-linux-amd64命令进行镜像迁移,也可以根据需要设置image-migrator的参数。 例如以下命令: ./image-migrator-linux-amd64 --workers=5 --auth=./auth.json --images=./images.json --namespace=test --registry=swr.cn-north-4.myhuaweicloud.com --retries=2 示例: $ ./image-migrator-linux-amd64 Start to generate images tasks, please wait ... Start to handle images tasks, please wait ... Images(38) migration finished, 0 images tasks failed, 0 tasks generate failed 结果查看。 上述命令执行完毕后,回显如下类似信息: Images(38) migration finished, 0 images tasks failed, 0 tasks generate failed 表示按照配置,成功将38个镜像迁移到SWR仓库中。
  • image-migrator工作原理 图1 image-migrator工作原理 使用image-migrator工具将镜像迁移到SWR时,需要准备两个文件,一个为镜像仓库访问权限文件“auth.json”,该文件中的两个对象分别为源镜像仓库和目标镜像仓库(即Registry)的账号和密码;另一个为镜像列表文件“images.json”,文件内容由多条镜像同步规则组成,每一条规则包括一个源镜像仓库(键)和一个目标镜像仓库(值)。将这两个文件准备好以后,放在image-migrator工具所在目录下,执行一条简单的命令,就可以完成镜像的迁移。关于两个文件的详细介绍如下: “auth.json”文件 “auth.json”为镜像仓库访问权限文件,其中每个对象为一个registry的用户名和密码。通常源镜像仓库需要具有pull以及访问tags权限,目标镜像仓库需要拥有push以及创建仓库权限。如果是匿名访问镜像仓库,则不需要填写用户名、密码等信息。“auth.json”文件的结构如下: { "源镜像仓库地址": { }, "目标镜像仓库地址": { "username": "xxxxxx", "password": "***************", "insecure": true } } 其中,文件内各个参数的描述与填写指导请参见表1。 表1 auth.json文件参数描述 参数 描述 源镜像仓库地址 支持“registry”和“registry/namespace”两种形式,需要跟下述“images.json”中的registry或registry/namespace对应。 说明: images中被匹配到的url会使用对应用户名密码进行镜像同步,优先匹配“registry/namespace”的形式。 目标镜像仓库地址 支持“registry”和“registry/namespace”两种形式,需要跟下述“images.json”中的registry或registry/namespace对应。 若您的镜像仓库为华为云SWR,且目标镜像仓库地址为“registry”形式,可以从SWR控制台页面获取,具体方法如下: 在“总览”页面单击右上角“登录指令”,登录指令末尾的域名即为SWR镜像仓库地址,例如swr.cn-north-4.myhuaweicloud.com。注意每个Region的地址不同,请切换到对应Region获取。 如果为“registry/namespace”形式,还要将namespace替换为SWR的组织名称。 若您的镜像仓库为Amazon ECR或ACR,请登录相应厂商的镜像仓库控制台,查看镜像仓库的推送命令,获取相应镜像仓库地址。 username 用户名,values可以填写具体取值,也可以使用“${env}”或者“$env”类型的字符串引用环境变量。 若您的镜像仓库为华为云SWR,则目标镜像仓库SWR的用户名形式为:区域项目名称@AK。 若您的镜像仓库为Amazon ECR或ACR,请登录相应厂商的镜像仓库控制台,查看镜像仓库的推送命令,获取相应账号。 password 密码,values可以填写具体取值,也可以使用“${env}”或者“$env”类型的字符串引用环境变量。 若您的镜像仓库为华为云SWR,则目标镜像仓库SWR的密码为AK和SK经过加密处理后的登录密钥,详细指导请参考获取长期有效登录指令。 若您的镜像仓库为Amazon ECR或ACR,请登录相应厂商的镜像仓库控制台,查看镜像仓库的推送命令,获取相应密码。 insecure registry是否为http服务,如果是,insecure为true;默认是false。 示例: { "quay.io/coreos": { }, "swr.cn-north-4.myhuaweicloud.com": { "username": "cn-north-4@RVHVMX******", "password": "***************", "insecure": true } } “images.json”文件 该文件本质上是一个待迁移的镜像清单,由多条镜像同步规则组成,每一条规则包括一个源镜像仓库(键)和一个目标镜像仓库(值)。具体的要求如下: 同步的最大单位是仓库(repository),不支持通过一条规则同步整个namespace以及registry。 源仓库和目标仓库的格式与docker pull/push命令使用的镜像url类似(registry/namespace/repository:tag)。 源仓库和目标仓库(如果目标仓库不为空字符串)都至少包含registry/namespace/repository。 源仓库字段不能为空,如果需要将一个源仓库同步到多个目标仓库需要配置多条规则。 目标仓库名可以和源仓库名不同,此时同步功能类似于:docker pull + docker tag + docker push。 当源仓库字段中不包含tag时,表示将该仓库所有tag同步到目标仓库,此时目标仓库不能包含tag。 当源仓库字段中包含tag时,表示只同步源仓库中的一个tag到目标仓库,如果目标仓库中不包含tag,则默认使用源tag。 当目标仓库为空字符串时,会将源镜像同步到默认registry的默认namespace下,并且repository以及tag与源仓库相同,默认registry和默认namespace可以通过命令行参数以及环境变量配置。 示例如下: { "quay.io/coreos/etcd:1.0.0": "swr.cn-north-4.myhuaweicloud.com/test/etcd:1.0.0", "quay.io/coreos/etcd": "swr.cn-north-4.myhuaweicloud.com/test/etcd", "quay.io/coreos/etcd:2.7.3": "swr.cn-north-4.myhuaweicloud.com/test/etcd" } 使用image-migrator工具的config子命令可自动获取集群中工作负载正在使用的镜像,具体用法请参见image-migrator config使用方法。得到images.json文件后,您还可以根据需要进行修改、添加或删除。
  • 创建FederatedHPA策略 控制台创建 登录U CS 控制台,在左侧导航栏中选择“容器舰队”。 单击已开通集群联邦的容器舰队名称,进入容器舰队详情页面。 在左侧导航栏选择“负载伸缩”,在“指标伸缩策略”页签下,单击右上角的“创建指标伸缩策略”。 配置FederatedHPA策略参数。 表1 FederatedHPA策略参数配置 参数 参数说明 策略名称 FederatedHPA策略的名称。输入长度范围为4-63个字符。 命名空间 请选择需要自动扩缩的工作负载所在命名空间的名称。也可新建命名空间,具体操作请参见命名空间。 生效工作负载 请选择需要设置自动扩缩的工作负载的名称。也可新建工作负载,具体操作请参见工作负载。 实例范围 触发策略时,工作负载内Pod数量所能达到的最大值与最小值。 最小值:请输入1-299之间的正整数。 最大值:请输入1-1500之间的正整数,且填写值需大于实例范围最小值。 稳定窗口时长 稳定窗口时长内指标数据持续达到期待值,才会进行扩缩。默认扩容稳定窗口时长为0秒,缩容稳定窗口时长为300秒。稳定窗口时长的详细信息请参见如何保证负载伸缩的稳定性?。 扩容:请输入0-3600之间的正整数,单位为秒。 缩容:请输入0-3600之间的正整数,单位为秒。 系统规则 若您需要基于系统指标对工作负载进行扩缩,则需配置该规则。 指标:可选择“CPU利用率”或“内存利用率”。 期待值:指标数据达到期待值时,触发扩缩。 自定义规则 若您需要基于自定义指标对工作负载进行扩缩,则需配置该规则。 自定义指标名称:在下拉框中选择自定义指标的名称。 指标来源:在下拉框中选择自定义指标所描述的对象类型,目前仅支持“Pod”。 期待值:指标数据达到期待值时,触发扩缩。 注意: 自定义规则仅支持1.19及更高版本的集群创建。 使用自定义规则时,集群中需要安装支持采集自定义指标的插件,且工作负载需正常上报并采集自定义指标,详情请参见安装指标采集插件。 参数配置完成后,单击右下角“创建”,即可跳转指标伸缩策略列表查看策略详情,完成FederatedHPA策略创建。 命令行创建 使用kubectl连接集群联邦,具体操作请参见使用kubectl连接集群联邦。 创建并编辑fhpa.yaml文件,文件内容定义如下所示,关键参数定义请参见表2。 vi fhpa.yaml 本示例创建的FederatedHPA策略名称为hpa-example-hpa,作用于名称为hpa-example的工作负载,稳定窗口时长为扩容0秒、缩容300秒,最大Pod数为100、最小Pod数为2,包含两条系统指标规则(名称为“memory”和“cpu”)。其中,memory规则中内存利用率的期望值为50%,cpu规则中CPU利用率的期望值为60%。 apiVersion: autoscaling.karmada.io/v1alpha1 kind: FederatedHPA metadata: name: hpa-example-hpa # FederatedHPA策略名称 namespace: default # 工作负载所在命名空间名称 spec: scaleTargetRef: apiVersion: apps/v1 kind: Deployment name: hpa-example # 工作负载名称 behavior: scaleDown: stabilizationWindowSeconds: 300 # 缩容的稳定窗口时长为300秒 scaleUp: stabilizationWindowSeconds: 0 # 扩容的稳定窗口时长为0秒 minReplicas: 2 # 最小Pod数为2 maxReplicas: 100 # 最大Pod数为100 metrics: - type: Resource resource: name: memory # 第一条规则名称 target: type: Utilization # 指标类型为利用率 averageUtilization: 50 # 期望的平均利用率 - type: Resource resource: name: cpu # 第二条规则名称 target: type: Utilization # 指标类型为利用率 averageUtilization: 60 # 期望的平均利用率 表2 关键参数说明 参数 是否必填 参数类型 描述 stabilizationWindowSeconds 否 String 缩容的稳定窗口时长,请输入0-3600之间的正整数,单位为秒,不定义时默认为300秒。 说明: 稳定窗口时长内指标数据持续达到期待值,才会进行扩缩。稳定窗口时长的详细信息请参见如何保证负载伸缩的稳定性?。 stabilizationWindowSeconds 否 String 扩容的稳定窗口时长,请输入0-3600之间的正整数,单位为秒,不定义时默认为0秒。 minReplicas 是 String 触发策略时,工作负载内Pod数量所能缩容到的最小值,请输入1-299之间的正整数。 maxReplicas 是 String 触发策略时,工作负载内Pod数量所能扩容到的最大值,请输入1-1500之间的正整数,且输入值需大于实例范围最小值。 name 是 String 规则名称。基于系统指标进行弹性伸缩时,基于内存利用率的规则名称为memory,基于CPU利用率的规则名称为cpu。 type 是 String 指标类型。 Value:总量 AverageValue:平均量 = 总量 / 当前Pod数 Utilization:利用率 = 平均量 / 申请量 averageUtilization 是 String 指标数据达到期待值时,触发扩缩。 执行如下命令创建FederatedHPA策略。 kubectl apply -f fhpa.yaml 回显如下表明创建成功。 FederatedHPA.autoscaling.karmada.io/hpa-example-hpa created 创建完成后,可以执行如下命令观察负载伸缩的运行效果。 检查工作负载的当前Pod数:kubectl get deployments 查看FederatedHPA策略事件(仅保留最近三条):kubectl describe federatedhpa hpa-example-hpa 可以执行如下命令管理FederatedHPA策略。其中hpa-example-hpa为FederatedHPA策略的名称,实际情况中需修改为自己所创建的策略名称。 获取FederatedHPA策略:kubectl get federatedhpa hpa-example-hpa 更新FederatedHPA策略:kubectl edit federatedhpa hpa-example-hpa 删除FederatedHPA策略:kubectl delete federatedhpa hpa-example-hpa
  • 准备网络环境 本地集群的数据接入方式支持公网接入和私网接入。 公网接入是通过公网Internet接入,要求集群能够访问公网,具有弹性灵活、成本低、易接入的优势。如果对网络质量没有要求,只想采用更简便的方式接入,那么公网接入是个不错的选择。 公网接入要求集群能够访问公网,请确保集群已符合此条件,否则会接入失败。 私网接入是通过云专线(DC)或 虚拟专用网络 (VPN)服务将云下网络与云上虚拟私有云(VPC)连通,并利用 VPC终端节点 通过内网与容器智能分析建立连接,具有高速、低时延、安全的优势。 图1 私网接入原理 因此,在开启之前,您需要准备满足一个云上虚拟私有云(VPC),并将线下自有IDC的网络环境与该VPC连通。VPC子网网段不能与IDC中已使用的网络网段重叠,否则将无法接入集群,例如,IDC中已使用的VPC子网为192.168.1.0/24,那么华为云VPC中不能使用192.168.1.0/24这个子网。 网络连通可以选用如下两种方案: 虚拟专用网络(VPN)方案:请参见通过VPN连接云下数据中心与云上VPC。 云专线(DC)方案:请参见用户通过单专线静态路由访问VPC或用户通过单专线BGP协议访问VPC。
  • 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。
  • 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 -h ProcessRestore from backup Usage: 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
  • 应用恢复操作步骤 通过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
  • 相关操作 事件:可以设置查询条件,比如设置事件产生的时间段或搜索事件名称,查看相关事件。 实例/任务列表:可以查看相应实例/任务的名称、状态等。 事件:实例产生的事件信息,保存时间为1小时。 实例列表:查看实例名称、状态、重启次数等。 查看YAML:查看对应实例的YAML文件。 删除:删除实例。 查看/编辑YAML:可以查看/编辑工作负载的YAML文件。 删除:删除任务。 停止(仅定时任务支持):停止定时任务。
  • 创建普通任务 普通任务可用于创建仅执行一次的批处理任务,任务执行完成后会自动退出。使用场景为在创建工作负载前,执行普通任务,将镜像上传至镜像仓库。 (可选)普通任务需要基于镜像创建,若选择私有镜像,用户首先需要将镜像上传至镜像仓库。 登录集群控制台,在左侧导航栏中选择“工作负载”,选择“普通任务”页签,并单击右上角“镜像创建”。 配置工作负载的信息。 基本信息 负载类型:选择普通任务Job。 负载名称:填写工作负载的名称。 命名空间:选择工作负载的命名空间,默认为default。您可以单击后面的“创建命名空间”,命名空间的详细介绍请参见创建命名空间。 实例数量:填写实例的数量,也就是Pod的数量。 容器配置 容器信息:Pod中可以配置多个容器,您可以单击右侧“添加容器”为Pod配置多个容器。 基本信息:请参见表1。 表1 基本信息参数说明 参数 说明 容器名称 为容器命名。 镜像名称 单击后方“选择镜像”,选择容器使用的镜像。 我的镜像:当前区域下镜像仓库中的镜像。若无可用的镜像,可单击“上传镜像”进行上传。 镜像中心:开源镜像仓库中的官方镜像。 共享镜像:由他人账号共享的私有镜像,详情请参见共享私有镜像。 镜像版本 选择需要部署的镜像版本。 更新策略 镜像更新/拉取策略。勾选“总是拉取镜像”表示每次都从镜像仓库拉取镜像;如不勾选则优先使用节点已有的镜像,如果没有这个镜像再从镜像仓库拉取。 CPU配额 申请:容器需要使用的最小CPU值,默认0.25Core。 限制:允许容器使用的CPU最大值。建议设容器配额的最高限额,避免容器资源超额导致系统故障。 内存配额 申请:容器需要使用的内存最小值,默认512MiB。 限制:允许容器使用的内存最大值。如果超过,容器会被终止。 关于CPU/内存配额申请和限制的具体说明请参见设置容器规格。 初始化容器 选择容器是否作为初始化容器。 Init 容器是一种特殊容器,在Pod内的应用容器启动之前运行。详细说明请参见Init 容器。 特权容器 特权容器是指容器里面的程序具有一定的特权。 若选中,容器将获得超级权限,例如可以操作宿主机上面的网络设备、修改内核参数等。 生命周期:设置生命周期回调函数可在容器的特定阶段执行调用,比如容器在停止前希望执行某项操作,就可以设置相应的函数。目前提供的生命周期回调函数有启动命令、启动后处理、停止前处理,详情请参见设置容器生命周期。 环境变量:容器运行环境中设定的一个变量,通过环境变量设置的配置项不会随着Pod生命周期结束而变化,详情请参见设置环境变量。 数据存储:配置容器存储,可以使用本地存储和存储卷声明(PVC)。建议使用PVC将工作负载Pod数据存储在 云存储 上。若存储在本地磁盘上,节点异常无法恢复时,本地磁盘中的数据也将无法恢复。容器存储相关内容请参见容器存储。 镜像访问凭证:用于访问镜像仓库的凭证。该凭证仅访问私有镜像仓库时使用,如所选镜像为公开镜像,则无需选择密钥。密钥的创建方法请参见创建密钥。 高级配置 标签与注解:您可以单击“添加”为Pod增加标签或注解,新增标签或注解的键不能与已有的重复。 任务设置: 并行数:任务负载执行过程中允许同时创建的最大实例数,并行数应不大于实例数。 超时时间:当任务执行超出该时间时,任务将会被标识为执行失败,任务下的所有实例都会被删除。为空时表示不设置超时时间。 任务创建完成后,在“普通任务”列表中可查看已创建的普通任务。 待状态为“处理中”,普通任务创建成功。
  • 创建定时任务 定时任务可用于创建按照设定时间和周期重复执行的任务,任务执行完成后会自动退出。使用场景为在某个固定时间点,为所有运行中的节点做时间同步。 (可选)定时任务需要基于镜像创建,若选择私有镜像,用户首先需要将镜像上传至镜像仓库。 登录集群控制台,在左侧导航栏中选择“工作负载”,选择“定时任务”页签,并单击右上角“创建负载”。 配置工作负载的信息。 基本信息 负载类型:选择定时任务CronJob。 负载名称:填写工作负载的名称。 命名空间:选择工作负载的命名空间,默认为default。您可以单击后面的“创建命名空间”,命名空间的详细介绍请参见创建命名空间。 容器配置 容器信息:Pod中可以配置多个容器,您可以单击右侧“添加容器”为Pod配置多个容器。 基本信息:请参见表2。 表2 基本信息参数说明 参数 说明 容器名称 为容器命名。 镜像名称 单击后方“选择镜像”,选择容器使用的镜像。 我的镜像:当前区域下镜像仓库中的镜像。若无可用的镜像,可单击“上传镜像”进行上传。 镜像中心:开源镜像仓库中的官方镜像。 共享镜像:由他人账号共享的私有镜像,详情请参见共享私有镜像。 镜像版本 选择需要部署的镜像版本。 更新策略 镜像更新/拉取策略。勾选“总是拉取镜像”表示每次都从镜像仓库拉取镜像;如不勾选则优先使用节点已有的镜像,如果没有这个镜像再从镜像仓库拉取。 CPU配额 申请:容器需要使用的最小CPU值,默认0.25Core。 限制:允许容器使用的CPU最大值。建议设容器配额的最高限额,避免容器资源超额导致系统故障。 内存配额 申请:容器需要使用的内存最小值,默认512MiB。 限制:允许容器使用的内存最大值。如果超过,容器会被终止。 关于CPU/内存配额申请和限制的具体说明请参见设置容器规格。 初始化容器 选择容器是否作为初始化容器。 Init 容器是一种特殊容器,在 Pod 内的应用容器启动之前运行。详细说明请参见Init 容器。 特权容器 特权容器是指容器里面的程序具有一定的特权。 若选中,容器将获得超级权限,例如可以操作宿主机上面的网络设备、修改内核参数等。 生命周期:设置生命周期回调函数可在容器的特定阶段执行调用,比如容器在停止前希望执行某项操作,就可以设置相应的函数。目前提供的生命周期回调函数有启动命令、启动后处理、停止前处理,详情请参见设置容器生命周期。 环境变量:容器运行环境中设定的一个变量,通过环境变量设置的配置项不会随着Pod生命周期结束而变化,详情请参见设置环境变量。 镜像访问凭证:用于访问镜像仓库的凭证。该凭证仅访问私有镜像仓库时使用,如所选镜像为公开镜像,则无需选择密钥。密钥的创建方法请参见创建密钥。 定时规则 并发策略:支持如下三种模式: Forbid:在前一个任务未完成时,不创建新任务。 Allow:定时任务不断新的任务,会抢占集群资源。 Replace:当到达新任务创建时间点,而前一个任务未完成时,新的任务会取代前一个任务。 定时规则:指定新建定时任务在何时执行,YAML中的定时规则通过CRON表达式实现。 以固定周期执行定时任务,支持的周期单位为分钟、小时、日、月。例如,每30分钟执行一次任务,对应的CRON表达式为“*/30 * * * *”,执行时间将从单位范围内的0值开始计算,如00:00:00、00:30:00、01:00:00、...。 以固定时间(按月)执行定时任务。例如,在每个月1日的0时0分执行任务,对应的CRON表达式为“0 0 1 */1 *”,执行时间为****-01-01 00:00:00、****-02-01 00:00:00、...。 以固定时间(按周)执行定时任务。例如,在每周一的0时0分执行任务,对应的CRON表达式为“0 0 * * 1”,执行时间为****-**-01 周一 00:00:00、****-**-08 周一 00:00:00、...。 自定义CRON表达式:关于CRON表达式的用法,可参考CRON。 以固定时间(按月)执行定时任务时,在某月的天数不存在的情况下,任务将不会在该月执行。例如设置天数为30,而2月份没有30号,任务将跳过该月份,在3月30号继续执行。 由于CRON表达式的定义,这里的固定周期并非严格意义的周期。将从0开始按周期对其时间单位范围(例如单位为分钟时,则范围为0~59)进行划分,无法整除时最后一个周期会被重置。因此仅在周期能够平均划分其时间单位范围时,才能表示准确的周期。 举个例子,周期单位为小时,因为“/2、/3、/4、/6、/8和/12”可将24小时整除,所以可以表示准确的周期;而使用其他周期时,在新的一天开始时,最后一个周期将会被重置。比如CRON式为“* */12 * * *”时为准确的周期,每天的执行时间为00:00:00和12:00:00;而CRON式为“* */13 * * *”时,每天的执行时间为00:00:00和13:00:00,在第二天0时,虽然没到13个小时的周期还是会被刷新。 任务记录:可以设置保留执行成功或执行失败的任务个数,设置为0表示不保留。 高级配置 标签与注解:您可以单击“添加”为Pod增加标签或注解,新增标签或注解的键不能与已有的重复。 任务创建完成后,在“定时任务”列表中可查看已创建的定时任务。 待状态为“已启动”,定时任务创建成功。
  • 任务概述 任务管理对应Kubernetes中的Job,分为普通任务和定时任务。 普通任务(Job)是Kubernetes用来控制批处理型任务的资源对象。批处理业务与长期伺服业务(Deployment、StatefulSet)的主要区别是批处理业务的运行有头有尾,而长期伺服业务在用户不停止的情况下永远运行。Job管理的Pod根据用户的设置把任务成功完成就自动退出了。成功完成的标志根据不同的spec.completions策略而不同:单Pod型任务有一个Pod成功就标志成功。定数成功型任务保证有N个任务全部成功标志成功。工作队列型任务根据应用确认的全局成功而标志成功。 定时任务(CronJob)即定时任务,是基于时间的Job,类似于Linux系统的crontab,在指定的时间周期运行指定的Job,即: 在给定时间点只运行一次。 在给定时间点周期性地运行。 CronJob的典型用法如下所示: 在给定的时间点调度Job运行。 创建周期性运行的Job,例如数据库备份、发送邮件。
  • 插件简介 E-Backup是云原生存储系统(Everest2.0)中负责云原生应用数据保护的子系统。它支持用户将应用数据(k8s资源)和业务数据(pv卷中的数据)备份到OBS桶中,也允许用户将某次备份数据恢复到指定的K8s集群中。 E-Backup通过备份和恢复两个子功能提供对以下使用场景的支持: 单集群下的容灾 周期性地对集群内部署的应用进行备份,在集群或者应用被破坏时通过恢复功能将应用重新部署到集群中,继续向外提供服务,实现应用的容灾。 同集群/跨集群的克隆 对于需要大批量部署到多个集群中的应用,特别是应用已经在某个集群工作一段时间后需要增添实例的情况。首先对处于工作状态的应用进行备份,随后恢复到同集群的不同Namespace下或者其他集群中,实现应用的克隆。 跨集群/跨云的迁移 由于网络、成本、业务地点变动等原因,需要将应用从某个集群迁移到跨Region的另一个集群,或者从其他云的集群迁入CCE。对迁出集群中的应用进行备份,而后恢复到迁入集群中,实现应用的迁移。
  • 约束与限制 目标集群Kubernetes版本需为1.15及以上,且集群中至少包含一个可用节点。 集群在安装插件时,需要保证集群可正常拉取SWR镜像。 备份/恢复过程中,需尽量保证集群处于稳态,不要触发增、删、改等变更行为,以免出现备份/恢复失败或不完整的情况。若集群发生变更,建议等15分钟后,集群处于稳态,再做备份操作。 E-Backup插件集成开源的Restic组件完成PV数据备份,会对备份时间点的数据做自有快照,并上传数据,不影响用户后续数据的读写,但Restic不进行文件内容的校验和业务一致性校验,其特性遵循restic约束。 Restic组件占用内存大小与初次备份的PV卷数据大小有关。若PV卷数据大于300G,建议采用云存储提供的迁移方式。若使用应用数据管理功能迁移大量PV数据,可修改restic实例的资源配额,具体操作方式请参见修改插件资源配额。 E-Backup插件遵循开源Velero和Restic插件的约束,例如在恢复过程中Service会清除ClusterIP以适应源集群和目标集群间的差异。 若在CCE集群中使用了扩展加密的Secret类型(cfe/secure-opaque),在恢复到其他集群时,需要提前手动创建同名、同类型的Secret(不同集群加解密物料不同),以免恢复的应用无法成功运行。
  • 安装插件 安装E-Backup插件后,请谨慎卸载,否则可能导致已有的备份无法恢复。因为E-Backup插件在执行备份恢复任务时,依赖自定义资源BackupStorageLocation及其Secret,该资源在卸载后重新安装会发生更改。 登录集群控制台。 在左侧导航栏中单击“插件管理”,在可安装插件栏中单击E-Backup插件下的“安装”按钮。 参照表1进行插件规格配置。 表1 E-Backup插件规格配置 参数 参数说明 插件规格 单实例部署。 容器 设置插件容器实例的资源配额。 velero:提供K8s元数据备份/恢复支持。 restic:提供应用数据存储卷备份/恢复支持。 说明: 集群中需要预留足够的资源,若资源不足,插件实例将无法调度。 申请值需小于等于限制值,否则无法成功创建。 请根据备份/恢复数据量大小,适当调整资源限制以避免插件故障。 进行参数配置,当前支持配置以下参数。 volumeWorkerNum:代表并发执行数据卷备份的工作数量,默认为3。 { "volumeWorkerNum": 3 } 单击“安装”后,返回“插件管理”页面查看已安装插件,插件状态为“运行中”,表明该插件已在当前集群中安装成功。
  • 前提条件 使用HPA前需要在集群内安装能够提供Metrics API的插件(详情请参见对Metrics API的支持): metrics-server:metrics-server从kubelet公开的Summary API中采集度量数据,提供基础资源使用指标,例如容器CPU和内存使用率。 为本地集群安装metrics-server,请参见metrics-server。 为其他集群安装metrics-server,请参见社区官方文档。对于附着集群,您也可安装对应厂商所提供的metric-server插件。 Prometheus:Prometheus是一套开源的系统监控报警框架,能够采集丰富的Metrics(度量数据),因此除基础资源指标外,Prometheus还支持提供自定义指标。
  • 操作步骤 登录UCS集群控制台。 如果是未加入舰队集群,直接单击集群名即可进入集群控制台。 如果是已加入容器舰队的集群,先进入对应容器舰队控制台,选择左侧 “集群管理”内的“容器集群”,再进入对应集群控制台。 左侧导航栏内选择“负载伸缩策略”,单击右上角的“创建 HPA 策略”。 填写待创建HPA策略的参数: 表1 HPA策略参数配置 参数 参数说明 策略名称 新建策略的名称,请自定义。 命名空间 请选择工作负载所在的命名空间。 关联工作负载 请选择要设置HPA 策略的工作负载。 实例范围 请输入最小实例数和最大实例数。 策略触发时,工作负载实例将在此范围内伸缩。 系统策略 指标:可选择“CPU利用率”或“内存利用率”。 说明: 利用率 = 工作负载容器组(Pod)的实际使用量 / 申请量 期望值:请输入期望资源平均利用率。 期望值表示所选指标的期望值,通过向上取整(当前指标值 / 期望值 × 当前实例数)来计算需要伸缩的实例数。 说明: HPA在计算扩容、缩容实例数时,会选择最近5分钟内实例数的最大值。 容忍范围:容忍度默认为0.1。指标处于范围内时不会触发伸缩,期望值必须在容忍范围之间。 当指标值大于缩容阈值且小于扩容阈值时,不会触发扩容或缩容。阈值仅在1.15及以上版本的集群中支持。 须知: 可以设置多条系统策略。
  • 非安全环境配置kubectl 参照上述操作,安装并设置kubectl。 编辑KubeConfig文件,删除敏感信息参数。 Linux系统,KubeConfig文件默认位于$HOME/.kube/config。 表2 待删除敏感信息参数 Command Flag Environment Value Description --domain-name DOMAIN_NAME 租户名 --user-name USER_NAME 子用户名 --password PASSWORD 用户密码 --ak AC CES S_KEY_ID Access Key --sk SECRET_ACCESS_KEY Secret Key --cache CREDENTIAL_CACHE 是否开启缓存Token 更多参数说明请参见asm-iam-authenticator使用参考。 配置删除参数相应的环境变量来使用kubectl,以CREDENTIAL_CACHE为例,其他环境变量如ACCESS_KEY_ID和SECRET_ACCESS_KEY可参考CREDENTIAL_CACHE进行配置。 export CREDENTIAL_CACHE=false 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全。 kubectl get serviceentry -n xxx 执行上述命令后,提示如下类似信息:
  • 获取网格实例Endpoint 登录华为云UCS控制台,左侧菜单栏选择“服务网格”。 F12打开浏览器console切换到“网络”标签页,单击服务网格列表页右上角小刷新按钮,找到meshes接口,单击“预览”标签页,找到对应网格的返回体,找到status.meshEndpoint.vpcEndpointServiceName字段后复制。 登录VPC终端节点 VPCEP,左侧菜单栏选择“终端节点”,找到终端节点服务名称为步骤2获取到的对应的终端节点,单击进入获取到节点IP。 ASM在您创建网格时选择的枢纽VPC创建终端节点,并将该终端节点连接到网格控制面apiserver,来打通访问网格控制面的网络。更多信息请参考1.2-操作步骤中VPC解释。
  • 获取AK/SK AK(Access Key ID):访问密钥ID。与私有访问密钥关联的唯一标识符;访问密钥ID和私有访问密钥一起使用,对请求进行加密签名。 SK(Secret Access Key):与访问密钥ID结合使用的密钥,对请求进行加密签名,可标识发送方,并防止请求被修改。 登录管理控制台。 单击用户名,在下拉列表中单击“我的凭证”。 在“我的凭证”页面,单击“访问密钥”页签。 单击“新增访问密钥”,输入验证码。 单击“确定”,生成并下载访问密钥。 为防止访问密钥泄露,建议您将其保存到安全的位置。
  • 安装并设置kubectl 以下操作以Linux环境为例,更多详情信息请参见安装和配置kubectl。 1、以下步骤需要在UCS网格接入集群纳管的节点上操作。 2、以下步骤2执行asm-iam-authenticator generate-kubeconfig命名后会更新节点默认配置的config内容,建议执行以下命令备份config文件。 cp $HOME/.kube/config $HOME/.kube/config.backup 将下载kubectl中下载的kubectl赋予可执行权限,并放到PATH目录下。 chmod +x ./kubectl mv ./kubectl $PATH 其中,$PATH为PATH路径(如/usr/local/bin),请替换为实际的值。 您还可以通过如下命令查看kubectl的版本,如下所示。 kubectl version --client=true Client Version: version.Info{Major:"1", Minor:"25", GitVersion:"v1.25.3", GitCommit:"434bfd82814af038ad94d62ebe59b133fcb50506", GitTreeState:"clean", BuildDate:"2022-10-12T10:57:26Z", GoVersion:"go1.19.2", Compiler:"gc", Platform:"linux/amd64"} Kustomize Version: v4.5.7 配置 IAM 认证信息并持久化到本地。 将下载asm-iam-authenticator中下载的asm-iam-authenticator赋予可执行权限,并放到PATH目录下。 chmod +x ./asm-iam-authenticator mv ./asm-iam-authenticator $PATH 初始化asm-iam-authenticator配置。 初始化asm-iam-authenticator提供了AK/SK和用户名/密码两种方式,请选择其中一种执行。 使用AK/SK的方式配置IAM认证信息 asm-iam-authenticator generate-kubeconfig --iam-endpoint=https://$iam_endpoint --mesh-endpoint=https://$mesh_endpoint --mesh-region=$mesh_region --ak=xxxxxxx --sk=xxxxxx 其中, iam_endpoint为IAM服务的Endpoint,请参见地区和终端节点 mesh_endpoint为网格实例的Endpoint,获取方法请参见获取网格实例Endpoint; mesh_region为网格所在区域; ak、sk的获取方法请参见获取AK/SK,ak为文件中Access Key部分,sk为文件中Secret Key部分。 例如,iam_endpoint为https://iam.cn-north-4.myhuaweicloud.com,mesh_endpoint为https://xx.xx.xx.xx:5443, mesh_region为cn-north-4, ak的值为my-ak,sk的值为ABCDEFAK.. ,则命令如下所示: asm-iam-authenticator generate-kubeconfig --iam-endpoint=https://iam.cn-north-4.myhuaweicloud.com --mesh-endpoint=https://xx.xx.xx.xx:5443 --mesh-region=cn-north-4 --ak=my-ak --sk=ABCDEFAK.. 执行上述命令后,显示如下类似信息: Switched to context "asm-context-cn-north-4-my-ak" 其中,asm-context-cn-north-4-my-ak为context名,可通过kubectl config get-contexts命令查看。 使用用户名/密码的方式配置IAM认证信息 asm-iam-authenticator generate-kubeconfig --iam-endpoint=https://$iam_endpoint --mesh-endpoint=https://$mesh_endpoint --mesh-region=$mesh_region --domain-name=xxxxxxx --user-name=xxxxxx --password='xxxxxx' 其中,iam_endpoint为IAM服务的Endpoint,请参见地区和终端节点, mesh_endpoint为网格实例的Endpoint,获取方法请参见获取网格实例Endpoint; mesh_region为网格所在区域; domain-name为租户名,user-name为子用户名,password为子用户密码,请根据替换为实际的值。 若无子用户,user-name与domain-name配置一致即可,也可以不添加user-name参数。 IAM的Endpoint请参见地区和终端节点,请注意需要使用与网格实例地区相同的Endpoint。 在非安全的环境中使用kubectl,建议您完成此步骤后,使用环境变量的方式重新配置认证信息,具体参考非安全环境配置kubectl。 配置完成后,即可通过kubectl命令操作网格实例的相关资源。 例如,查看北京四的namespace资源。 kubectl get serviceentry -n xxx 执行上述命令后,提示如下类似信息: 当通过API访问公有云系统时,需要使用访问用户名密码或者密钥(AK/SK)进行身份认证并对请求进行加密,确保请求的机密性、完整性和请求双方身份的正确性。请妥善保存$HOME/.kube/config配置文件,确保访问密钥不被非法使用。 当开启cache缓存token提高访问性能时,token会以文件的方式保存在$HOME/.asm/cache的子目录下,请及时清理。 当发现访问密钥被非法使用(包括丢失、泄露等情况),可以自行删除或者通知管理员重置访问密钥,重新配置。 删除的访问密钥将无法恢复。
  • 下载asm-iam-authenticator 在ASM官网下载asm-iam-authenticator二进制,最新版本为v1.0.0,下载地址如表1所示。 表1 下载地址 操作系统 下载地址 查看帮助 Linux AMD 64位 asm-iam-authenticator_linux-amd64 asm-iam-authenticator_linux-amd64_sha256 asm-iam-authenticator使用参考
  • 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 -h ProcessRestore from backup Usage: 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
  • 创建策略实例 登录UCS控制台,在左侧导航栏中选择“策略中心”。 在列表中找到已启用策略中心功能的容器舰队或集群,单击“创建策略实例”。 填写如下参数: 图1 创建策略实例 策略定义:从内置的33个策略定义中选择一个,本教程以“k8srequiredlabels”为例,该策略定义的作用是要求资源包含指定的标签,其值与提供的正则表达式匹配。这里设置标签的key为owner,正则表达式为^[a-zA-Z]+.agilebank.demo$。 策略执行方式:包括拦截和告警两种方式。拦截表示不符合策略要求的资源将无法创建,告警表示不符合策略要求的资源仅告警提醒,仍可以正常创建。本教程以“拦截”执行方式为例。 策略生效范围:选择生效的命名空间。本教程以“default”命名空间为例。 单击“创建”,创建完成后系统会自动分发策略,如果分发成功,策略实例将在集群中生效。
  • 验证策略实例是否生效 策略实例分发成功后可在集群中执行符合策略实例的动作,此时该动作可正常执行;若在集群中执行不符合策略实例的动作,该动作将被拒绝掉(取决于设置的策略执行方式)。 尝试在集群中创建一个Pod,定义标签为:owner: user.agilebank.demo,符合策略实例,Pod可以创建成功。 如果在创建Pod时不包含策略实例中定义的标签,则Pod创建不成功,同时在“不合规资源”页签会生成相应的记录。
  • 通过MCI访问服务 MCI对象创建成功后,您可以通过 http://IP:port/path 访问后端工作负载,其中IP:port为MCI关联ELB的IP和端口,path为MCI对象中定义的路径。 MCI对象中还可以设置外部域名,这样您就可以通过域名来访问到ELB,进而访问到后端服务。 spec: rules: - host: www.example.com # 域名 http: paths: - path: / backend: serviceName: nginx # 准备一个名为nginx的联邦service servicePort: 80 # 端口号为80 域名访问依赖于域名解析,需要您将域名解析指向ELB实例的IP地址,例如您可以使用云解析服务 DNS来实现域名解析。
共100000条