云服务器内容精选

  • 创建ConfigMap 下面示例创建了一个名为configmap-test的ConfigMap,ConfigMap的配置数据在data字段下定义。 apiVersion: v1 kind: ConfigMap metadata: name: configmap-test data: # 配置数据 property_1: Hello property_2: World
  • 在Volume中引用ConfigMap 在Volume中引用ConfigMap,就是通过文件的方式直接将ConfigMap的每条数据填入Volume,每条数据是一个文件,键就是文件名,键值就是文件内容。 如下示例中,创建一个名为vol-configmap的Volume,这个Volume引用名为“configmap-test”的ConfigMap,再将Volume挂载到容器的“/tmp”路径下。Pod创建成功后,在容器的“/tmp”路径下,就有两个文件property_1和property_2,它们的值分别为“Hello”和“World”。 apiVersion: v1 kind: Pod metadata: name: nginx spec: containers: - image: nginx:alpine name: container-0 resources: limits: cpu: 100m memory: 200Mi requests: cpu: 100m memory: 200Mi volumeMounts: - name: vol-configmap # 挂载名为vol-configmap的Volume mountPath: "/tmp" imagePullSecrets: - name: default-secret volumes: - name: vol-configmap configMap: # 引用ConfigMap name: configmap-test
  • 在环境变量中引用ConfigMap ConfigMap最为常见的使用方式就是在环境变量和Volume中引用。 例如下面例子中,引用了configmap-test的property_1,将其作为环境变量EXAMPLE_PROPERTY_1的值,这样容器启动后里面EXAMPLE_PROPERTY_1的值就是property_1的值,即“Hello”。 apiVersion: v1 kind: Pod metadata: name: nginx spec: containers: - image: nginx:alpine name: container-0 resources: limits: cpu: 100m memory: 200Mi requests: cpu: 100m memory: 200Mi env: - name: EXAMPLE_PROPERTY_1 valueFrom: configMapKeyRef: # 引用ConfigMap name: configmap-test key: property_1 imagePullSecrets: - name: default-secret
  • 背景 Podinfo是一个微模型的Web应用程序,它展示了在Kubernetes中运行微服务的最佳实践,其主要用作于测试和研讨。本章将用podinfo源代码来做创建配置集合的示例。 为了可以更快的、更稳定的持续地交付软件、减少后续维护工作,所以将podinfo的源代码放入GitHub仓库,并通过创建配置集合的方式部署到集群中,通过GitOps能力实现软件自动化部署,具体请参考操作步骤。 创建podinfo源代码仓时,请先注册一个属于自己的GitHub账号,然后将podinfo所有代码fork到自己的GitHub仓库中。 在git仓库中定义交付资源清单文件时,不应包含敏感信息(如数据库连接密钥等)。相关敏感信息应以环境变量、加密存储的Secret等方式进行存储。 图1 Podinfo界面
  • 操作步骤 登录华为云控制台。 在左侧导航栏中选择“分布式云原生”,选择“配置管理”。 在右上角“添加集群”,选择需要启用配置管理功能的目标集群,单击确定。 在集群概览页,选择目标集群,单击“Gitops能力”,查看Gitops插件(名称:集群名称-FluxPlugin)是否安装成功。当插件部署状态显示运行中,表示插件已部署成功。 图2 集群概览页 选择“配置集合”页签,单击创建配置集合。 选择仓库源,如果已有仓库源请参考使用已有仓库源配置,如果需要创建新仓库源,请参考创建新仓库源。
  • 创建新仓库源 单击“创建新仓库源”输入仓库源名称、仓库源URL地址。 输入需要与其同步的代码库分支。 选择数据源验证,以及输入密钥。 选择公有类型的仓库无需进行身份验证,即可提供只读权限。 选择私有类型的仓库,则数据源验证可选择“选择集群secret”和“提供认证信息(SSH)”,两种方式都需要配置的密钥进行身份验证。 仓库密钥创建请参考密钥。 仓库源创建完成后,在“自动同步策略”内输入“配置集合路径”,单击“下一步:信息确认”。 确认配置信息无误后,单击“创建配置集合”;如有问题,单击上一步进行修改。
  • 数据订阅格式说明 AOM 格式的指标JSON格式代码片断 package metric type MetricDatas struct { Metrics []Metrics `json:"metrics"` ProjectId string `json:"project_id"` } type Metrics struct { Metric Metric `json:"metric"` Values []Value `json:"values"` CollectTime int64 `json:"collect_time"` } type Metric struct { Namespace string `json:"namespace"` Dimensions []Dimension `json:"dimensions"` } type Value struct { Value interface{} `json:"value"` Type string `json:"type"` Unit string `json:"unit"` StatisticValues string `json:"statisticvalues"` MetricName string `json:"metric_name"` } type Dimension struct { Name string `json:"name"` Value string `json:"value"` } kafka消息示例 key:, value:{"metrics":[{"metric":{"namespace":"PAAS.NODE","dimensions":[{"name":"nodeName","value":"test-vss-cop-master-1"},{"name":"nodeIP","value":"1.1.1.1"},{"name":"hostID","value":"75d97111-4734-4c6c-ae9e-f6111111111"},{"name":"nameSpace","value":"default"},{"name":"clusterId","value":"46a7bc0d-1d8b-11ea-9b04-333333333333333"},{"name":"clusterName","value":"test-vss-111"},{"name":"diskDevice","value":"vda"},{"name":"master","value":"true"}]},"values":[{"value":0,"type":"","unit":"Kilobytes/Second","statisticvalues":"","metric_name":"diskReadRate"},{"value":30.267,"type":"","unit":"Kilobytes/Second","statisticvalues":"","metric_name":"diskWriteRate"}],"collect_time":1597821030037}],"project_id":"111111111111111111111"} 告警数据格式说明 示例: { "events": [{ "id": "4346299651651991683", "starts_at": 1597822250194, "ends_at": 0, "arrives_at": 1597822250194, "timeout": 300000, "resource_group_id": "312313123112222222222232131312131", "metadata": { "kind": "Pod", "event_severity": "Major", "resource_type": "service", "clusterId": "6add4ef5-1358-11ea-a5bf-111111111", "event_type": "alarm", "clusterName": "cce-ief-4516140c-96ca-4a5f-8d85-1111111", "namespace": "PAAS.NODE", "name": "test15769793809553052-f5557bd7f-qnfkm", "event_name": "调度失败##FailedScheduling", "resource_id": "clusterName=cce-ief-4516140c-96ca-4a5f-8d85-111111;clusterID=6add4ef5-1358-11ea-a5bf-11111111111;kind=Pod;namespace=30d5758f166947c6b164af604a654b09;name=test15769793809553052-f5557bd7f-qnfkm;uid=589fc746-245d-11ea-a465-fa163e5fc15d", "nameSpace": "30d5758f166947c6b164af604a654b09", "resource_provider": "CCE", "nodeID": "589fc746-245d-11ea-a465-fa163e5fc15d" }, "annotations": { "alarm_probableCause_zh_cn": "FailedScheduling", "alarm_probableCause_en_us": "FailedScheduling", "message": "0/110 nodes are available: 1 node(s) had taints that the pod didn't tolerate, 109 node(s) didn't match node selector." }, "attach_rule": { } }], "project_id": "312313123112222222222232131312131" } 参数说明: 表4 告警参数 参数 参数类型 描述 events Array ofobjects,详见 表5。 事件或者告警详情。 project_id String 租户从 IAM 申请到的projectid,一般为32位字符串。 表5 EventModel 参数 参数类型 描述 id String 事件或者告警id,系统自动生成。 starts_at Long 事件或者告警产生的时间, CS T毫秒级时间戳。 ends_at Long 事件或者告警清除的时间,CST毫秒级时间戳,为0时表示未删除。 arrives_at Long 事件或者告警到达AOM的时间,CST毫秒级时间戳。 timeout Long 告警自动清除时间。毫秒数,例如一分钟则填写为60000。默认清除时间为3天。 resource_group_id String 资源组预留字段,当前默认和projectid的值一样。 metadata Object 事件或者告警的详细信息,为键值对形式。必须字段为: event_name:事件或者告警名称,类型为String; event_severity:事件级别枚举值。类型为String,四种类型 "Critical", "Major", "Minor", "Info"; event_type:事件类别枚举值。类型为String,event为普通告警,alarm为告警事件; resource_provider:事件对应云服务名称。类型为String; resource_type:事件对应资源类型。类型为String; resource_id:事件对应资源信息。类型为String。 annotations Object 事件或者告警附加字段,可以为空。 attach_rule Object 事件或者告警预留字段,为空。
  • 接口功能 该接口用于设置语言,默认是中文。注意事项:1、实现自定义语言,windows平台要求在 \HwmSdk\sdkResources\language\ 目录下创建对应的国际化文件,如新增阿拉伯语则可以创建 \ar\temp.js;mac平台要求在 /HWMUISDK.framework/Versions/A/Frameworks/WKLanguage.framework/Resources/ 目录下创建对应的国际化文件,如新增阿拉伯语则可以创建 ar.lproj/Localizable.strings。通过该接口设置的语言应与系统当前语言保持一致。
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 count Integer 参数说明:满足查询条件的记录总数。 forwarding_configs Array of ForwardingConfig objects 参数说明:转发配置的列表。 表5 ForwardingConfig 参数 参数类型 描述 forwarding_type String 参数说明:转发配置的类型。 取值范围:当前仅支持“kafka、mrskafka”。 kafka_config KafkaConfigResponseDTO object 参数说明:Kafka配置信息。 mrs_kafka_config MrsKafkaConfigResponseDTO object 参数说明:mrsKafka配置信息。 表6 KafkaConfigResponseDTO 参数 参数类型 描述 kafka_config_id String 参数说明:每一套Kafka配置的唯一ID。 取值范围:只允许字母、数字、下划线(_)、连接符(-)的组合。 kafka_topics Array of strings 参数说明:kafka的主题列表。 取值范围: v2x-v1-tracks:edge上报的车辆轨迹数据 v2x-v1-bsm:车载T-BOX,RSU上报的BSM消息数据 v2x-v1-rsi:RSU,edge上报的RSI消息数据 v2x-v1-rsm: RSU,edge上报的RSM消息数据 v2x-v1-spat:RSU上报的SPAT消息数据 v2x-v1-edge-flow:edge上报的车流量统计信息数据 brokers Array of strings 参数说明:Kafka broker列表。 username String 参数说明:kafka用户名。 取值范围:只允许字母、数字、下划线(_)、连接符(-)的组合。 topic_prefix String 参数说明:Topic前缀。 取值范围:长度不超过255,只允许字母、数字、下划线(_)、连接符(-)的组合。 status String 参数说明:一套kafka的连接状态。 取值范围: OFFLINE:离线 ONLINE:在线 cert_info CertificateInfo object 参数说明:证书信息。 model_ids Array of strings 参数说明:模型ID列表。 user_topics包含model-data时必选,仅支持非系统、分层为gdm的动态模型。 可通过 GET /{project_id}/models 查询模型列表接口获取。 取值范围:仅支持字母,数字以及中划线(-)的组合,长度为36。 created_time String 参数说明:创建时间。 格式为yyyy-MM-dd'T'HH:mm:ss'Z' 例如:2015-12-12T12:12:12Z last_modified_time String 参数说明:修改时间。 格式为yyyy-MM-dd'T'HH:mm:ss'Z' 例如:2015-12-12T12:12:12Z 表7 CertificateInfo 参数 参数类型 描述 effective_date String 证书生效日期 expiry_date String 证书失效日期 表8 MrsKafkaConfigResponseDTO 参数 参数类型 描述 kafka_config_id String 参数说明:每一套Kafka配置的唯一ID。 取值范围:只允许字母、数字、下划线(_)、连接符(-)的组合。 kafka_topics Array of strings 参数说明:kafka的主题列表。 取值范围: v2x-v1-tracks:edge上报的车辆轨迹数据 v2x-v1-bsm:车载T-BOX,RSU上报的BSM消息数据 v2x-v1-rsi:RSU,edge上报的RSI消息数据 v2x-v1-rsm: RSU,edge上报的RSM消息数据 v2x-v1-spat:RSU上报的SPAT消息数据 v2x-v1-edge-flow:edge上报的车流量统计信息数据 brokers Array of strings 参数说明:Kafka broker列表。 username String 参数说明:mrskafka用户名,若开启安全认证该参数必填。 取值范围:只允许字母、数字、下划线(_)、连接符(-)的组合。 status String 参数说明:一套kafka的连接状态。 取值范围: OFFLINE:离线 ONLINE:在线 authentication Boolean 参数说明:是否开启kerberos安全认证的开关。若开启安全认证则需要先上传kerberos安全认证的凭证。 model_ids Array of strings 参数说明:模型ID列表。 user_topics包含model-data时必选,仅支持非系统、分层为gdm的动态模型。 可通过 GET /{project_id}/models 查询模型列表接口获取。 取值范围:仅支持字母,数字以及中划线(-)的组合,长度为36。 created_time String 参数说明:创建时间。 格式为yyyy-MM-dd'T'HH:mm:ss'Z' 例如:2015-12-12T12:12:12Z last_modified_time String 参数说明:修改时间。 格式为yyyy-MM-dd'T'HH:mm:ss'Z' 例如:2015-12-12T12:12:12Z
  • 响应示例 状态码: 200 OK { "count" : 1, "forwarding_configs" : [ { "forwarding_type" : "kafka", "kafka_config" : { "kafka_config_id" : "1234567890", "kafka_topics" : [ "v2x-v1-tracks", "v2x-v1-bsm", "v2x-v1-rsi", "v2x-v1-rsm", "v2x-v1-spat", "v2x-v1-edge-flow", "realtime-traffic", "junction-realtime-traffic", "forecast-traffic", "recommended-strategies", "executed-strategies", "strategy-evaluations", "confirmed-event", "traffic-event", "compositive-tracks", "model-data", "request-strategies", "congestion-event", "congestion-prediction-event" ], "brokers" : [ "127.0.0.1:10000" ], "username" : "1234567890", "topic_prefix" : "abc", "status" : "ONLINE", "model_ids" : [ "40f96952-ea2f-4a10-8a92-e641aa1c6e49" ], "created_time" : "2015-12-12T12:12:12Z", "last_modified_time" : "2015-12-13T12:12:12Z" }, "mrs_kafka_config" : { "kafka_config_id" : null, "kafka_topics" : [ "v2x-v1-tracks", "v2x-v1-bsm", "v2x-v1-rsi", "v2x-v1-rsm", "v2x-v1-spat", "v2x-v1-edge-flow", "realtime-traffic", "junction-realtime-traffic", "forecast-traffic", "recommended-strategies", "executed-strategies", "strategy-evaluations", "confirmed-event", "traffic-event", "compositive-tracks", "model-data", "request-strategies", "congestion-event", "congestion-prediction-event" ], "brokers" : [ "127.0.0.1:10000" ], "username" : null, "status" : null, "authentication" : false, "model_ids" : [ "40f96952-ea2f-4a10-8a92-e641aa1c6e49" ], "created_time" : "2015-12-12T12:12:12Z", "last_modified_time" : "2015-12-12T12:12:12Z" } } ] }
  • 响应示例 状态码: 200 OK { "configs" : [ { "key" : "catalog.max.limit", "value" : 1, "description" : "catalog最大数量限制。" } ], "page_info" : { "current_count" : 2000, "next_marker" : "006f492b-xxxx", "previous_marker" : "003e6eba-xxxx" } } 状态码: 400 Bad Request { "error_code" : "common.01000001", "error_msg" : "failed to read http request, please check your input, code: 400, reason: Type mismatch., cause: TypeMismatchException" } 状态码: 401 Unauthorized { "error_code": 'APIG.1002', "error_msg": 'Incorrect token or token resolution failed' } 状态码: 403 Forbidden { "error" : { "code" : "403", "message" : "X-Auth-Token is invalid in the request", "error_code" : null, "error_msg" : null, "title" : "Forbidden" }, "error_code" : "403", "error_msg" : "X-Auth-Token is invalid in the request", "title" : "Forbidden" } 状态码: 404 Not Found { "error_code" : "common.01000001", "error_msg" : "response status exception, code: 404" } 状态码: 408 Request Timeout { "error_code" : "common.00000408", "error_msg" : "timeout exception occurred" } 状态码: 500 Internal Server Error { "error_code" : "common.00000500", "error_msg" : "internal error" }
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 configs Array of LakeCatConfiguration objects 配置项。 page_info PagedInfo object 分页信息。 表5 LakeCatConfiguration 参数 参数类型 描述 key String 配置项的key。 value String 配置项的值。 description String 配置项描述。 表6 PagedInfo 参数 参数类型 描述 current_count Integer 本次返回的对象个数。最小值为0,最大值为2000。 next_marker String 下一页查询地址。当不存在下一页,则值为null,当值为null时,响应Body无该参数。 previous_marker String 上一页查询地址。当不存在上一页,则值为null,当值为null时,响应Body无该参数。 状态码: 400 表7 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误描述。 solution_msg String 解决方案描述。 状态码: 404 表8 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误描述。 solution_msg String 解决方案描述。 状态码: 500 表9 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误描述。 solution_msg String 解决方案描述。
  • URI GET /v1/{project_id}/instances/{instance_id}/configurations 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目编号。获取方法,请参见获取项目ID。 instance_id 是 String LakeFormation实例ID。创建实例时自动生成。例如:2180518f-42b8-4947-b20b-adfc53981a25。 表2 Query参数 参数 是否必选 参数类型 描述 limit 否 Integer 查询返回条数。默认值为1000。最小值为0,最大值为1000。 marker 否 String 查询的起始记录ID。最小长度为0,最大长度为256。 reverse_page 否 Boolean 是否查询上一页。默认为false。
  • 认证方式 当前仅支持添加公有云资源类型的凭证。支持的认证方式参见表1。 表1 公有云认证方式 资源类型 认证方式 说明 公有云 AK/SK 适用于添加华为云、阿里云、AWS、腾讯云、七牛云和金山云等云平台凭证。各云平台的AK/SK获取方法请参考如何获取云平台凭证。 配置文件 适用于添加谷歌云平台凭证。配置文件需要上传谷歌云服务账号凭据,该凭证必须为json格式文件,且大小不能超过4KB。 ID/密钥 适用于添加Azure平台凭证。添加凭证所需的信息获取方法请参见如何获取添加Azure凭证所需的信息。 云上凭证的存储有效期为7天,超过7天后,凭证会过期,需要重新输入。
  • 响应示例 状态码: 200 OK { "count" : 1, "ddl_list" : [ { "seqno" : 30, "checkpoint" : "mysql-bin.000006:431;200e3d00-4a57-11ef-8a76-fa163ef2208a:7;200e3d00-4a57-11ef-8a76-fa163ef2208a:1-7", "status" : 1, "ddl_timestamp" : 1721894317000, "ddl_text" : "/* sql from das */ALTER TABLE `test1`.`test1`\n\tADD COLUMN `sex` VARCHAR(32) NULL AFTER `name`", "exe_result" : true, "record_time" : 1721894318544, "clean_time" : 1721897321317 } ] } 状态码: 400 Bad Request { "error_code" : "DRS.10000001", "error_msg" : "Failed." }