当前位置:主页 > 查看内容

集群内访问(ClusterIP)_云容器引擎 CCE_用户指南_网络管理_Servi

发布时间:2021-09-23 00:00| 位朋友查看

简介:操作场景 集群内访问 表示工作负载暴露给同一集群内其他工作负载访问的方式,可以通过 “集群内部域名” 访问。 集群内部域名格式为 “自定义的服务名称.工作负载所在命名空间.svc.cluster.local:端口号” ,例如 “nginx.default.svc.cluster.local:80” 。……

操作场景

集群内访问表示工作负载暴露给同一集群内其他工作负载访问的方式,可以通过“集群内部域名”访问。

集群内部域名格式为“<自定义的服务名称>.<工作负载所在命名空间>.svc.cluster.local:<端口号>”,例如“nginx.default.svc.cluster.local:80”

访问通道、容器端口与访问端口映射如图1所示。

图1 集群内访问

工作负载创建时设置

您可以在创建工作负载时通过CCE控制台设置Service访问方式,如下:

  1. 参考创建无状态负载(Deployment)创建有状态负载(StatefulSet)创建守护进程集(DaemonSet),在“工作负载访问设置”步骤,单击添加服务

    • 访问类型:选择“集群内访问 ( ClusterIP )”
    • Service名称:自定义服务名称,可与工作负载名称保持一致。
    • IPv6:默认不开启,开启后服务的集群内IP地址(ClusterIP)变为IPv6地址,具体请参见如何通过CCE搭建IPv4/IPv6双栈集群?该功能仅在1.15及以上版本的集群创建时开启了IPv6功能才会显示。
    • 端口配置:
      • 协议:请根据业务的协议类型选择。
      • 容器端口:工作负载程序实际监听的端口,需用户确定。nginx程序实际监听的端口为80。
      • 访问端口:容器端口映射到集群虚拟IP上的端口,用虚拟IP访问工作负载时使用,端口范围为1-65535,可任意指定。
    图2 访问类型为集群内访问 ( ClusterIP )

  2. 单击“下一步”进入“高级设置”页面,直接单击“创建”
  3. 单击“查看工作负载详情”,在“访问方式”页签下获取访问地址,例如10.247.74.100:8080。

工作负载创建完成后设置

您可以在工作负载创建完成后对Service进行配置,此配置对工作负载状态无影响,且实时生效。具体操作如下:

  1. 登录CCE控制台,在左侧导航栏中选择“工作负载 > 无状态负载 Deployment”,在工作负载列表页单击要设置Service的工作负载名称。
  2. “Service”页签,单击“添加Service”。
  3. “添加Service”页面,访问类型选择“集群内访问 ( ClusterIP )”
  4. 设置集群内访问参数。

    • Service名称:自定义服务名称,可与工作负载名称保持一致。
    • 集群名称:工作负载所在集群的名称,此处不可修改。
    • 命名空间:工作负载所在命名空间,此处不可修改。
    • 关联工作负载:要添加Service的工作负载,此处不可修改。
    • IPv6:默认不开启,开启后服务的集群内IP地址(ClusterIP)变为IPv6地址,具体请参见如何通过CCE搭建IPv4/IPv6双栈集群?该功能仅在1.15及以上版本的集群创建时开启了IPv6功能才会显示。
    • 端口配置:
      • 协议:请根据业务的协议类型选择。
      • 容器端口:工作负载程序实际监听的端口,需用户确定。nginx程序实际监听的端口为80。
      • 访问端口:容器端口映射到集群虚拟IP上的端口,用虚拟IP访问工作负载时使用,端口范围为1-65535,可任意指定。

  5. 单击“创建”。工作负载已添加“集群内访问 ( ClusterIP )”的服务。

验证访问方式

  1. 在管理控制台首页,单击“计算 > 弹性云服务器
  2. 在弹性云服务器页面,找到同一VPC内任意一台云服务器,并确认连接到访问地址中IP与端口的安全组是开放的。
  3. 登录工作负载所在集群的任意节点,登录方法请参见登录Linux弹性云服务器
  4. 使用curl命令访问工作负载验证工作负载是否可以正常访问。您可以通过IP或者域名的方式来验证。

    方式一:通过IP地址验证。

    curl 10.247.74.100:8080

    其中10.247.74.100:8080为步骤3中获取的访问地址。

    回显如下表示工作负载可正常访问。

    <html>
    <head>
    <title>Welcome to nginx!</title>
    <style>
        body {
            width: 35em;
            margin: 0 auto;
            font-family: Tahoma, Verdana, Arial, sans-serif;
        }
    </style>
    </head>
    <body>
    <h1>Welcome to nginx!</h1>
    <p>If you see this page, the nginx web server is successfully installed and
    working. Further configuration is required.</p>
    
    <p>For online documentation and support please refer to
    <a href="http://nginx.org/">nginx.org</a>.<br/>
    Commercial support is available at
    <a href="http://nginx.com/">nginx.com</a>.</p>
    
    <p><em>Thank you for using nginx.</em></p>
    </body>
    </html>

    方式二:进入容器,在容器内通过域名验证。

    curl nginx.default.svc.cluster.local:8080

    其中nginx.default.svc.cluster.local步骤3中获取的域名访问地址。

    回显如下表示工作负载可正常访问。

    <html>
    <head>
    <title>Welcome to nginx!</title>
    <style>
        body {
            width: 35em;
            margin: 0 auto;
            font-family: Tahoma, Verdana, Arial, sans-serif;
        }
    </style>
    </head>
    <body>
    <h1>Welcome to nginx!</h1>
    <p>If you see this page, the nginx web server is successfully installed and
    working. Further configuration is required.</p>
    
    <p>For online documentation and support please refer to
    <a href="http://nginx.org/">nginx.org</a>.<br/>
    Commercial support is available at
    <a href="http://nginx.com/">nginx.com</a>.</p>
    
    <p><em>Thank you for using nginx.</em></p>
    </body>
    </html>

更新Service

您可以在添加完Service后,更新此Service的端口配置,操作步骤如下:

  1. 登录CCE控制台,在左侧导航栏中选择“资源管理 > 网络管理”,在Service页签下,选择对应的集群和命名空间,单击需要更新端口配置的Service后的“更新”。
  2. “更新Service”页面,访问类型选择“集群内访问 ( ClusterIP )”
  3. 更新集群内访问参数。

    • Service名称:您创建的Service名称,此处不可修改。
    • 集群名称:工作负载所在集群的名称,此处不可修改。
    • 命名空间:工作负载所在命名空间,此处不可修改。
    • 关联工作负载:要添加Service的工作负载,此处不可修改。
    • IPv6:该功能仅在1.15及以上版本的集群创建时开启了IPv6功能才会显示,此处不可修改。
    • 端口配置:
      • 协议:请根据业务的协议类型选择。
      • 容器端口:工作负载程序实际监听的端口,需用户确定。nginx程序实际监听的端口为80。
      • 访问端口:容器端口映射到集群虚拟IP上的端口,用虚拟IP访问工作负载时使用,端口范围为1-65535,可任意指定。

  4. 单击“更新”,工作负载已更新Service。

通过kubectl命令行创建

您可以通过kubectl命令行设置Service访问方式。本节以nginx为例,说明kubectl命令实现集群内访问的方法。

前提条件

请参见通过kubectl或web-terminal插件操作CCE集群配置kubectl命令,使弹性云服务器连接集群。

操作步骤

  1. 登录已配置好kubectl命令的弹性云服务器。登录方法请参见登录Linux弹性云服务器
  2. 创建并编辑nginx-deployment.yaml和nginx-clusterip-svc.yaml文件。

    其中,nginx-deployment.yaml和nginx-clusterip-svc.yaml为自定义名称,您可以随意命名。

    vi nginx-deployment.yaml
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: nginx
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: nginx
      strategy:
        type: RollingUpdate
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
          - image: nginx 
            imagePullPolicy: Always
            name: nginx
          imagePullSecrets:
          - name: default-secret
    vi nginx-ClusterIp-svc.yaml
    apiVersion: v1
    kind: Service
    metadata:
      labels:
        app: nginx
      name: nginx-clusterip
    spec:
      ports:
      - name: service0
        port: 8080
        protocol: TCP
        targetPort: 80
      selector:
        app: nginx
      type: ClusterIP
    表1 关键参数说明

    参数

    是否必填

    参数类型

    描述

    port

    Integer

    将由此服务公开的端口,对应界面上的访问端口。

    targetPort

    Integer

    对应界面上的容器端口。

    type

    String

    对应界面上的访问类型,必须是:

    • ClusterIP
    • NodePort
    • LoadBalancer

    默认值:ClusterIP,表示“集群虚拟IP”。

  3. 创建工作负载。

    kubectl create -f nginx-deployment.yaml

    回显如下,表示工作负载已开始创建。

    deployment "nginx" created

    kubectl get po

    回显如下,工作负载状态为Running,表示工作负载已处于运行中状态。

    NAME                     READY     STATUS             RESTARTS   AGE
    etcd-0                   0/1       ImagePullBackOff   0          27m
    icagent-m9dkt            0/0       Running            0          3d
    nginx-2601814895-znhbr   1/1       Running            0          15s

  4. 创建服务。

    kubectl create -f nginx-ClusterIp-svc.yaml

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

    service "nginx-clusterip" created

    kubectl get svc

    回显如下,表示服务已创建成功,CLUSTER-IP已生成。

    NAME              TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)    AGE
    etcd-svc          ClusterIP   None             <none>        3120/TCP   30m
    kubernetes        ClusterIP   10.247.0.1       <none>        443/TCP    3d
    nginx-clusterip   ClusterIP   10.247.200.134   <none>        80/TCP     20s

  5. 登录工作负载所在集群的任意节点,登录方法请参见登录Linux弹性云服务器
  6. 采用curl命令访问工作负载验证工作负载是否可以正常访问。您可以通过IP或者域名的方式来验证。

    方式一:通过IP地址验证

    curl 10.247.200.134:80

    回显如下表示工作负载可正常访问。

    <html>
    <head>
    <title>Welcome to nginx!</title>
    <style>
        body {
            width: 35em;
            margin: 0 auto;
            font-family: Tahoma, Verdana, Arial, sans-serif;
        }
    </style>
    </head>
    <body>
    <h1>Welcome to nginx!</h1>
    <p>If you see this page, the nginx web server is successfully installed and
    working. Further configuration is required.</p>
    
    <p>For online documentation and support please refer to
    <a href="http://nginx.org/">nginx.org</a>.<br/>
    Commercial support is available at
    <a href="http://nginx.com/">nginx.com</a>.</p>
    
    <p><em>Thank you for using nginx.</em></p>
    </body>
    </html>

    方式二:通过域名验证

    curl nginx-clusterip.default.svc.cluster.local:8080

    回显如下表示工作负载可正常访问。

    <html>
    <head>
    <title>Welcome to nginx!</title>
    <style>
        body {
            width: 35em;
            margin: 0 auto;
            font-family: Tahoma, Verdana, Arial, sans-serif;
        }
    </style>
    </head>
    <body>
    <h1>Welcome to nginx!</h1>
    <p>If you see this page, the nginx web server is successfully installed and
    working. Further configuration is required.</p>
    
    <p>For online documentation and support please refer to
    <a href="http://nginx.org/">nginx.org</a>.<br/>
    Commercial support is available at
    <a href="http://nginx.com/">nginx.com</a>.</p>
    
    <p><em>Thank you for using nginx.</em></p>
    </body>
    </html>


本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!
上一篇:实例管理概述 - 弹性伸缩 下一篇:没有了

推荐图文

  • 周排行
  • 月排行
  • 总排行

随机推荐