本文主要介绍了如何通过 OpenAPI 门户,来调试对接云平台各类容器接口。

操作步骤

通过 OpenAPI 门户成功发起 API 请求后,会对账号下云资源产生真实变更,与云控制台操作完全对等,请谨慎操作 。

1. 登录 OpenAPI 门户

登录OpenAPI门户。点击右上角登录按钮,输入云平台账号和密码。

2. 查询集群

查询集群,获取当前登录账号下所有集群信息,记录下需要操作的集群名称。之后对所有资源的增删改查,都需要指定集群。

No 说明
1 API分组切换到容器管理
2 选择菜单 > 集群 > 查询集群
3 选择调试标签
4 点击发送
5 选择并记录下需要操作的集群名称,后续请求需要指定集群

3. 命名空间

所有资源全部放于命名空间之中,不同命名空间下的资源相互独立。

3.1 创建命名空间

创建自己的命名空间,或使用已有的命名空间。之后对所有资源的增删改查,都需要指定命名空间。

3.1.1 查看文档

对于接口的每个字段的说明,都可以在文档标签查看

No 说明
1 选择菜单 > 命名空间 > 创建命名空间
2 切换至文档标签
3 入参,可直接复制使用
4 字段详细描述

3.1.2 发送请求

No 说明
1 切换至调试标签
2 输入 2 查到的集群名称
3 输入命名空间名称
4 输入Base64加密后的登录密码
5 点击发送
6 创建返回码201表示创建成功(响应码表

3.2 查询命名空间详情

No 说明
1 选择菜单 > 命名空间 > 查看命名空间详情
2 切换至调试标签
3 输入 2 查到的集群名称
4 输入 3 创建的命名空间名称
5 点击发送
6 返回 JSON 格式的命名空间 Kubernetes 资源描述
7 字段描述显示开关
8 字段描述
9 返回码200

3.3 删除命名空间

No 说明
1 选择菜单 > 命名空间 > 删除命名空间
2 切换至调试标签
3 输入2查到的集群名称
4 输入3创建的命名空间名称
5 点击发送
6 删除返回204表示删除成功(响应码表

4. 无状态工作负载

普通的应用需要在无状态工作负载上提供服务

4.1 创建无状态工作负载

本示例,创建一个nginx的无状态工作负载,可以替换Json内容,换成自己的应用。

No 说明
1 选择菜单 > 无状态工作负载 > 创建Deployment
2 切换至调试标签
3 输入 2 查到的集群名称
4 输入 3 创建的命名空间名称或已经存在的命名空间
4.1 两处命名空间必须保持一致,
4.2 其余参数默认值可用,也可以切换到文档标签进行字段详情的查询
5 点击发送
6 返回 JSON 格式的无状态工作负载 Kubernetes 资源描述
7 创建返回码201表示创建成功(响应码表

4.2 查询无状态工作负载详情

同 3.2 查询命名空间详情,查询详情接口可以获取查询资源的 Kubernetes 资源描述,

{
    "apiVersion": "apps/v1",
    "kind": "Deployment",
    "metadata": {
        "annotations": {
            "deployment.kubernetes.io/revision": "21",
            "desc": "帮助中心"
        },
        "creationTimestamp": "2023-06-28T05:24:05Z",
        "generation": 27,
        "name": "cloud-help-center",
        "namespace": "manager",
        "resourceVersion": "478729087",
        "uid": "826f4590-c762-4bfc-80ec-27d53d6f1f10",
        "managedFields": []
    },
    "spec": {
        "minReadySeconds": 10,
        "progressDeadlineSeconds": 600,
        "replicas": 1,
        "revisionHistoryLimit": 10,
        "selector": {
            "matchLabels": {
                "app": "cloud-help-center"
            }
        },
        "strategy": {
            "rollingUpdate": {
                "maxSurge": "10%",
                "maxUnavailable": "0%"
            },
            "type": "RollingUpdate"
        },
        "template": {
            "metadata": {
                "labels": {
                    "app": "cloud-help-center"
                }
            },
            "spec": {
                "affinity": {
                    "nodeAffinity": {
                        "preferredDuringSchedulingIgnoredDuringExecution": [
                            {
                                "preference": {
                                    "matchExpressions": [
                                        {
                                            "key": "area",
                                            "operator": "In",
                                            "values": [
                                                "mandaoyun"
                                            ]
                                        }
                                    ]
                                },
                                "weight": 100
                            }
                        ]
                    }
                },
                "containers": [
                    {
                        "env": [
                            {
                                "name": "PROJECT_NAME",
                                "value": "cloud-help-center"
                            },
                            {
                                "name": "DEPLOYMENT_DEMO_VER",
                                "value": "v0.1"
                            },
                            {
                                "name": "PROJECT_JAR",
                                "value": "peojectjar.war"
                            },
                            {
                                "name": "ENVIRONMENT",
                                "value": "manager"
                            }
                        ],
                        "image": "dockerhub.baofu.com/app/2019111400000016/mandaoyun-help:dev-1.0.8",
                        "imagePullPolicy": "IfNotPresent",
                        "name": "cloud-help-center0",
                        "resources": {
                            "limits": {
                                "cpu": "1",
                                "memory": "1Gi"
                            },
                            "requests": {
                                "cpu": "100m",
                                "memory": "100Mi"
                            }
                        },
                        "terminationMessagePath": "/dev/termination-log",
                        "terminationMessagePolicy": "File",
                        "volumeMounts": [
                            {
                                "mountPath": "/opt",
                                "name": "logs"
                            },
                            {
                                "mountPath": "/usr/local/run-jar.sh",
                                "name": "run",
                                "subPath": "run-jar.sh"
                            },
                            {
                                "mountPath": "/mandao-config",
                                "name": "run-config"
                            },
                            {
                                "mountPath": "/mindoc/uploads",
                                "name": "uploads"
                            }
                        ]
                    }
                ],
                "dnsPolicy": "ClusterFirst",
                "imagePullSecrets": [
                    {
                        "name": "myregistrykey"
                    }
                ],
                "restartPolicy": "Always",
                "schedulerName": "default-scheduler",
                "securityContext": {},
                "terminationGracePeriodSeconds": 30,
                "volumes": [
                    {
                        "hostPath": {
                            "path": "/data/log/manager",
                            "type": ""
                        },
                        "name": "logs"
                    },
                    {
                        "configMap": {
                            "defaultMode": 493,
                            "name": "config-java-run"
                        },
                        "name": "run"
                    },
                    {
                        "configMap": {
                            "defaultMode": 420,
                            "name": "mdy-help-center"
                        },
                        "name": "run-config"
                    },
                    {
                        "name": "uploads",
                        "persistentVolumeClaim": {
                            "claimName": "pvc-cloud-help-center-uploads"
                        }
                    }
                ]
            }
        }
    },
    "status": {
        "availableReplicas": 1,
        "conditions": [
            {
                "lastTransitionTime": "2023-06-28T05:52:29Z",
                "lastUpdateTime": "2024-02-19T07:40:46Z",
                "message": "ReplicaSet \"cloud-help-center-758658df7\" has successfully progressed.",
                "reason": "NewReplicaSetAvailable",
                "status": "True",
                "type": "Progressing"
            },
            {
                "lastTransitionTime": "2024-06-14T10:30:12Z",
                "lastUpdateTime": "2024-06-14T10:30:12Z",
                "message": "Deployment has minimum availability.",
                "reason": "MinimumReplicasAvailable",
                "status": "True",
                "type": "Available"
            }
        ],
        "observedGeneration": 27,
        "readyReplicas": 1,
        "replicas": 1,
        "updatedReplicas": 1
    }
}

4.3 修改无状态工作负载

修改资源需要获取到该资源的 Kubernetes 资源描述,原生的描述格式为 YAML,本平台需要转换成 JSON 格式作为修改接口的请求参数。

4.3.1 通过查询接口获取 Kubernetes 资源描述

4.2查询接口返回的 JSON 格式的 Kubernetes 资源描述,可用于修改接口的请求参数

4.3.2 通过云平台项目详情获取 Kubernetes 资源描述

本视频会引导您将云平台已有应用,通过 OpenAPI 接口调整应用中的参数。

作者:叶奕珺  创建时间:2024-07-17 16:16
最后编辑:叶奕珺  更新时间:2025-04-29 18:46