更新时间:2023-12-21 GMT+08:00

快速入门

概述

本文通过调用一系列云容器实例的API使用nginx镜像创建一个工作负载,介绍使用云容器实例API的基本流程。

其中,镜像直接使用开源镜像中心的nginx镜像,容器的资源规格为0.25核CPU、512M内存,并绑定一个负载均衡实例,通过负载均衡实例从外网访问容器负载。

API的调用方法请参见如何调用API

创建流程

  1. 调用创建Namespace接口创建命名空间。
  2. 调用创建Network接口创建网络,与VPC和子网关联。
  3. 调用创建Deployment接口创建nginx容器负载。

创建Nginx负载

  1. 调用创建Namespace接口创建命名空间,并指定使用GPU型资源。

    {
        "apiVersion": "v1",
        "kind": "Namespace",
        "metadata": {
            "name": "namespace-test",
            "annotations": {
                "namespace.kubernetes.io/flavor": "gpu-accelerated"
            }
        },
        "spec": {
            "finalizers": [
                "kubernetes"
            ]
        }
    }

    您需要指定如下参数。

    • name:命名空间的名称。
    • namespace.kubernetes.io/flavor:命名空间的类型,当前支持GPU加速型(gpu-accelerated)和通用计算型(general-computing)。GPU加速型命名空间中可以使用GPU显卡。

  2. 调用创建Network接口创建网络,与VPC与子网关联。

    {
        "apiVersion": "networking.cci.io/v1beta1",
        "kind": "Network",
        "metadata": {
            "name": "test-network",
            "annotations": {
                "network.alpha.kubernetes.io/default-security-group": "security-group-id",
                "network.alpha.kubernetes.io/domain-id": "domain-id",
                "network.alpha.kubernetes.io/project-id": "project-id"
            }
        },
        "spec": {
            
            "cidr": "192.168.0.0/24",
            "attachedVPC": "vpc-id",
            "networkID": "network-id",
            "subnetID": "subnet-id",
            "networkType": "underlay_neutron"
        }
    }

    您需要指定如下参数。

  3. 调用创建Deployment接口创建nginx容器负载。

    负载名称为nginx,使用开源镜像中心的nginx:latest镜像,容器的资源规格为0.25核CPU、1G内存。调用接口后,云容器实例会创建一个运行nginx的容器。

    {
        "apiVersion": "apps/v1",
        "kind": "Deployment",
        "metadata": {
            "name": "nginx"
        },
        "spec": {
            "replicas": 1,
            "selector": {
                "matchLabels": {
                    "app": "nginx"
                }
            },
            "template": {
                "metadata": {
                    "labels": {
                        "app": "nginx"
                    }
                },
                "spec": {
                    "containers": [
                        {
                            "image": "nginx:latest",
                            "name": "container-0",
                            "resources": {
                                "limits": {
                                    "cpu": "250m",
                                    "memory": "1Gi"
                                },
                                "requests": {
                                    "cpu": "250m",
                                    "memory": "1Gi"
                                }
                            }
                        }
                    ],
                    "imagePullSecrets": [
                        {
                            "name": "imagepull-secret"
                        }
                    ]
                }
            }
        }
    }

    您需要指定如下参数。

    • name:Deployment的名称。
    • replicas:Pod的数量,即Deployment下有几个Pod。
    • selector.matchLabels:Deployment使用哪些标签选择Pod,例如这里设置的标签app=nginx,当Pod有这个标签时,就会被Deployment选中管理。
    • template:Pod的模板,定义Pod的各种配置和规格。
      • metadata.labels:Pod的标签。
      • spec.containers:Pod中容器的定义。
        • image:创建容器使用的镜像。
        • resources.limits:容器使用资源的大小限制,即容器使用的资源不能超过这个限制。
        • resources.requests:容器申请使用资源的大小。

    Nginx负载创建完后,您可以在云容器实例控制台查看到负载。

    图1 nginx