凯发k8国际娱乐官网入口-k8凯发> 云容器引擎 cce> > 创建无状态工作负载(nginx)
更新时间:2023-12-26 gmt 08:00

创建无状态工作负载(nginx)-凯发k8国际娱乐官网入口

您可以使用镜像快速创建一个可公网访问的单实例工作负载。本章节将指导您基于云容器引擎cce快速部署nginx容器应用,并管理该容器应用的全生命周期,以期让您具备将云容器引擎应用到实际项目中的能力。

前提条件

您需要创建一个至少包含一个4核8g节点的集群,且该节点已绑定弹性ip。

集群是运行工作负载的逻辑分组,包含一组云服务器资源,每台云服务器即集群中的一个节点。

创建集群的方法,请参见快速创建kubernetes集群

nginx应用概述

nginx是一款轻量级的web服务器,您可通过cce快速搭建nginx web服务器。

本章节将以创建nginx应用为例,来创建一个工作负载,预计需要5分钟。

本章节执行完成后,可成功访问nginx的网页,如下图。

图1 本例结果

通过控制台创建nginx

本章节将指导您通过容器镜像创建您的第一个容器工作负载。

  1. 登录。
  2. 单击集群进入集群控制台。
  3. 在左侧菜单栏选择“工作负载”,单击右上角“创建负载”
  4. 填写以下参数,其它保持默认。

    基本信息

    • 负载类型:选择无状态负载。
    • 负载名称:nginx。
    • 命名空间:default。
    • 实例数量:请设置为1。

    容器配置

    在“容器信息 > 基本信息”中单击“选择镜像”,在弹出的窗口中选择“镜像中心”,并搜索“nginx”,选择nginx镜像。

    图2 选择nginx镜像

    服务配置

    单击服务配置下的加号,创建服务(service),用于从外部访问负载。本例将创建一个负载均衡类型的service,请在右侧弹窗中配置如下参数。

    • service名称:输入应用发布的可被外部访问的名称,设置为:nginx。
    • 访问类型:选择“负载均衡 ( loadbalancer )”
    • 服务亲和:保持默认。
    • 负载均衡器:如果已有负载均衡(elb)实例,可以选择已有elb,如果没有可选择“自动创建”,创建一个公网类型负载均衡器。
    • 端口配置:
      • 对外协议:tcp。
      • 服务端口:设置为8080,该端口号将映射到容器端口。
      • 容器端口:容器中应用启动监听的端口,nginx镜像请设置为80,其他应用容器端口和应用本身的端口一致。
    图3 创建服务
  5. 单击右下角“创建工作负载”

    等待工作负载创建成功。

    创建成功后在无状态负载下会显示一个运行中的工作负载。

    图4 创建工作负载成功

访问nginx

  1. 获取nginx的外部访问地址。
    单击nginx工作负载名称,进入工作负载详情页。在“访问方式”页签下可以看到nginx的ip地址,其中公网地址就是外部访问地址。
    图5 获取外部访问地址
  2. 在浏览器中输入“外部访问地址”,即可成功访问应用,如下图所示。
    图6 访问nginx应用

通过kubectl创建nginx

本步骤指导您通过kubectl创建一个无状态工作负载(deployment),并通过负载均衡类型service将负载公开,使得其能从外网访问。

  1. 请参见,使用kubectl连接集群。
  2. 创建一个名为nginx-deployment.yaml的描述文件。其中,nginx-deployment.yaml为自定义名称,您可以随意命名。

    vi nginx-deployment.yaml

    apiversion: apps/v1
    kind: deployment
    metadata:
      name: nginx
    spec:
      replicas: 1
      selector:
        matchlabels:
          app: nginx
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
          - image: nginx:alpine
            name: nginx
          imagepullsecrets:
          - name: default-secret
  3. 创建deployment。

    kubectl create -f nginx-deployment.yaml

    回显如下表示已开始创建deployment。

    deployment "nginx" created

    查看deployment状态。

    kubectl get deployment

    deployment状态显示为running,表示deployment已创建成功。

    name           ready     up-to-date   available   age 
    nginx          1/1       1            1           4m5s

    参数解析:

    • name:工作负载名称。
    • ready:表示工作负载的可用状态,显示为“可用pod个数/期望pod个数”。
    • up-to-date:指当前已经完成更新的副本数。
    • available:可用的pod个数。
    • age:已经运行的时间。
  4. 创建一个名为nginx-elb-svc.yaml的描述文件。将selector修改为nginx-deployment.yaml示例应用文件中matchlabels的值(本示例为app: nginx),从而将该服务关联至后端应用。
    下面示例中参数详细描述清参见。
    apiversion: v1 
    kind: service 
    metadata: 
      annotations:   
        kubernetes.io/elb.class: union
        kubernetes.io/elb.autocreate: 
            '{
                "type": "public",
                "bandwidth_name": "cce-bandwidth",
                "bandwidth_chargemode": "bandwidth",
                "bandwidth_size": 5,
                "bandwidth_sharetype": "per",
                "eip_type": "5_bgp"
            }'
      labels:
        app: nginx
      name: nginx 
    spec: 
      ports: 
      - name: service0 
        port: 80
        protocol: tcp 
        targetport: 80
      selector: 
        app: nginx 
      type: loadbalancer
  5. 创建服务。

    kubectl create -f nginx-elb-svc.yaml

    回显如下,表示服务已创建。

    service/nginx created

    kubectl get svc

    回显如下,表示工作负载访问方式已设置成功,工作负载可访问。

    name         type           cluster-ip       external-ip   port(s)        age
    kubernetes   clusterip      10.247.0.1               443/tcp        3d
    nginx        loadbalancer   10.247.130.196   **.**.**.**   80:31540/tcp   51s
  6. 在浏览器中输入访问地址,例如输入**.**.**.**:80。**.**.**.**为负载均衡实例ip地址,80为对应界面上的访问端口。

    可成功访问nginx。

    图7 通过负载均衡访问nginx
分享:
网站地图