本节通过调用一系列API使用2048镜像创建一个游戏工作负载为例,介绍使用CCE API的基本流程,创建出来的工作负载如下所示。
创建2048工作负载的流程如下:
如果您已经创建集群,可以跳过创建集群的步骤,直接使用获取已创建的集群UUID。
假设已获取前提条件中的信息为如下值(实际操作中您需要根据实际情况替换):
则可以通过如下步骤创建一个带有单个节点的集群。
其中加粗的部分,需要替换为真实的数据。
curl -H "Content-Type:application/json" https://{iam_endpoint}/v3/auth/tokens -X POST -d '{ "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "name": "username", "password": "******", "domain": { "name": "domainname" } } } }, "scope": { "project": { "name": "cn-north-4" } } } }' -v
响应Header中“X-Subject-Token”的值即为Token:
X-Subject-Token: ******
使用如下命令将token设置为环境变量,方便后续事项。
export Token={X-Subject-Token}
X-Subject-Token即为上一步骤获取到的token。
curl -H "X-Auth-Token:$Token" -H "Content-Type:application/json;charset=utf-8" -X POST https://{cce_endpoint}/api/v3/projects/{project_id}/clusters -d '{ "kind": "Cluster", "apiVersion": "v3", "metadata": { "name": "cluster-sample" }, "spec": { "type": "VirtualMachine", "flavor": "cce.s1.small", "version": "v1.9.7-r0", "hostNetwork": { "vpc": "219ab8a0-1272-4049-a383-8ad0b770fa11", "subnet": "d23ef2e9-8b90-49b3-bc4a-fd7d6bea6bec" }, "containerNetwork": { "mode": "overlay_l2" } } }'
响应消息体中items数组中metadata.uid参数即为集群ID。
"uid":"d8cbca81-889a-11e8-88e9-0255ac10212d"
为方便后续事项,使用如下命令将集群ID设置为环境变量,后续使用中{cluster_id}即为集群ID。
export cluster_id=d8cbca81-889a-11e8-88e9-0255ac10212d
curl -H "X-Auth-Token:$Token" -H "Content-Type:application/json;charset=utf-8" -X POST https://{cce_endpoint}/api/v3/projects/{project_id}/clusters/{cluster_id}/nodes -d '{ "kind": "Node", "apiVersion": "v3", "metadata": { "name": "node-sample" }, "spec": { "flavor": "c3.large.2", "az": "cn-north-4a", "login": { "sshKey": "keypair-cce" }, "rootVolume": { "size": 40, "volumetype": "SATA" }, "dataVolumes": [ { "size": 100, "volumetype": "SATA" } ], "publicIP": { "count": 1, "eip": { "iptype": "5_bgp", "bandwidth": { "chargemode": "traffic", "size": 10, "sharetype": "PER" } } }, "count": 1 } }'
假设已获取前提条件中的信息为如下值(实际操作中您需要根据实际情况替换):
私有docker镜像地址:swr.cn-north-4.myhuaweicloud.com/full/2048-demo:v1.2(此地址为示例,获取方法请参见客户端上传镜像)。
则可以通过如下步骤创建一个工作负载。
curl -X POST -H "Content-Type:application/json" -H "X-Cluster-ID:$UUID" -H "X-Auth-Token:$Token" -d '{ "apiVersion": "extensions/v1beta1", "kind": "Deployment", "metadata": { "labels": { "app": "deployment-test" }, "name": "deployment-test" }, "spec": { "replicas": 1, "selector": { "matchLabels": { "app": "deployment-test" } }, "template": { "metadata": { "labels": { "app": "deployment-test" } }, "spec": { "containers": [ { "image": "swr.cn-north-4.myhuaweicloud.com/full/2048-demo:v1.2", "imagePullPolicy": "IfNotPresent", "name": "deployment-test" } ], "imagePullSecrets": [{ "name": "default-secret" }] } } } }' https://{集群id}.{cce_endpoint}/apis/extensions/v1beta1/namespaces/default/deployments -k -v
curl -X GET -H 'Content-Type:application/json;charset=utf-8' -H "X-Cluster-ID:$UUID" -H "X-Auth-Token:$Token" https://{集群id}.{cce_endpoint}/apis/extensions/v1beta1/namespaces/default/deployments/deployment-test -k -v
如果返回的响应显示availableReplicas的数量为1,则说明创建成功,即代表工作负载创建成功。
"status": { "observedGeneration ": 1, "replicas ": 1, "updatedReplicas ": 1, "availableReplicas": 1 }
您还可以从CCE控制台中查看工作负载是否创建成功,登录CCE控制台,单击左侧“工作负载”,即可看到“deployment-test”工作负载。
Service的名称为service-test,访问类型选择NodePort,访问协议为TCP。
curl -X POST -H "Content-Type:application/json" -H "X-Cluster-UUID:$UUID" -H "X-Auth-Token:$Token" -d '{ "kind":"Service", "apiVersion":"v1", "metadata":{ "name":"service-test", "creationTimestamp":null, "labels":{ "app":"deployment-test" } }, "spec":{ "ports":[{ "name":"http", "nodePort":30023, "port":80, "protocol":"TCP", "targetPort":80 }], "selector":{ "app":"deployment-test" }, "type":"NodePort" } }' https://{集群id}.{cce_endpoint} /api/v1/namespaces/default/services -k -v
若返回状态码201,说明命令执行成功。
curl -X GET -H 'Content-Type:application/json;charset=utf-8' -H "X-Cluster-ID:$UUID" -H "X-Auth-Token:$Token" https://{集群id}.{cce_endpoint} /api/v1/namespaces/default/services/service-test -k -v
响应如下,表示创建成功:
{ "kind": "Service", "apiVersion": "v1", "metadata": { "name": "service-test", "namespace": "default", "selfLink": "/api/v1/namespaces/default/services/service-test", "uid": "cb932657-214a-11e8-b486-fa163ecd089c", "resourceVersion": "340196", "creationTimestamp": "2018-03-06T14:29:36Z", "labels": { "app": "deployment-test" }, "enable": true }, "spec": { "ports": [{ "name": "http", "protocol": "TCP", "port": 80, "targetPort": 80, "nodePort": 30023 }], "selector": { "app": "deployment-test " }, "clusterIP": "10.247.90.130", "type": "NodePort", "sessionAffinity": "None", "externalTrafficPolicy": "Cluster" }, "status": { "loadBalancer": {} } }
您还可以从CCE控制台查看创建的服务,登录CCE控制台,单击左侧“工作负载”,单击deployment-test工作负载,进入工作负载详情,在“访问方式”页签中,可查看到访问地址,nodePort为30023。
若该访问节点绑定了弹性IP,可通过弹性IP地址:nodePort从外部访问工作负载。
前言 在前面整理了一篇关于JVM故障诊断和处理工具,考虑到大部分的Java程序员都...
香港 服务器租用 有什么优势 服务器是网站建设的重要组成部分,也可以说在一定程...
工业发展进入到21世纪之后,随着物联网、云计算和大数据等新兴技术的迅速发展,...
操作场景 由于同一时间点,一台云服务器上能安装多个应用但只能运行一个应用,且...
我们知道,有了合适的技术,我们可以做得比仅仅跟上更新要好得多,并且如果我们...
操作场景 桶创建成功后,您可以通过以下多种方式将文件上传至桶,OBS最终将这些...
攻取实例的策略配置状态。 调试 您可以在OpenAPI Explorer中直接运行该接口,免...
本文转载自微信公众号「码农读书」,作者码农读书。转载本文请联系码农读书公众...
前提: 数据样本符合标准正态分布,正态分布的核心是中心极限定理即:如果一个事...
Hologres 中文名交互式分析 是阿里云自研的一站式实时数仓 这个云原生系统融合了...