本文主要介绍在虚拟节点上部署Ingress应用,使得集群无需创建新节点即可为该应用扩充无限容量,满足业务高峰低谷的弹性需求。
前提条件
- 您已经部署了一个虚拟节点。具体操作,请参见通过部署ACK虚拟节点组件创建ECI Pod。
- 您已经给命名空间vk打上virtual-node-affinity-injection: enabled标签。具体操作,请参见通过配置namespace标签的方式创建Pod。
操作步骤
- 登录容器服务管理控制台。
- 在控制台左侧导航栏,单击集群。
- 在集群列表页面,单击目标集群名称或者目标集群右侧操作列下的详情。
- 在集群管理页左侧导航栏,选择 。
- 单击右上角的使用YAML创建资源。
- 选择样例模板或自定义,然后单击创建。您可以使用如下YAML示例模板创建Ingress。
apiVersion: apps/v1 kind: Deployment metadata: name: coffee spec: replicas: 2 selector: matchLabels: app: coffee template: metadata: labels: app: coffee spec: containers: - name: coffee image: nginxdemos/hello:plain-text ports: - containerPort: 80 --- apiVersion: v1 kind: Service metadata: name: coffee-svc spec: ports: - port: 80 targetPort: 80 protocol: TCP selector: app: coffee clusterIP: None --- apiVersion: apps/v1 kind: Deployment metadata: name: tea spec: replicas: 3 selector: matchLabels: app: tea template: metadata: labels: app: tea spec: containers: - name: tea image: nginxdemos/hello:plain-text ports: - containerPort: 80 --- apiVersion: v1 kind: Service metadata: name: tea-svc labels: spec: ports: - port: 80 targetPort: 80 protocol: TCP selector: app: tea clusterIP: None --- apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: cafe-ingress spec: rules: - host: cafe.example.com http: paths: - path: /coffee pathType: Prefix backend: service: name: coffee-svc port: number: 80 - path: /tea pathType: Prefix backend: service: name: tea-svc port: number: 80
预期结果
- 在集群管理页左侧导航栏中,选择coffee和tea。 ,可以看到刚刚创建的
- 在集群管理页左侧导航栏中,选择 ,可以看到Pod都运行在Virtual-Kubelet节点上。
- 在集群管理页左侧导航栏中,选择 ,可以看到刚刚创建的路由。
- 您可以执行如下命令,确保可以访问Ingress应用。
kubectl get ing
预期输出:
NAME HOSTS ADDRESS PORTS AGE cafe-ingress cafe.example.com 114.55.xx.xx 80 6m18s
执行以下命令,验证访问Ingress应用的
"Host:cafe.example.com" <EXTERNAL_IP>/tea
地址。curl -H "Host:cafe.example.com" <EXTERNAL_IP>/tea
预期输出:
Server address: 192.168.xx.xx:80 Server name: tea-658d56f6cc-cxxxx Date: 25/Sep/2020:12:36:50 +0000 URI: /tea Request ID: b01d5bab9ae07abb8bc385377193xxxx
执行以下命令,验证访问Ingress应用的
"Host:cafe.example.com" <EXTERNAL_IP>/coffee
地址。curl -H "Host:cafe.example.com" <EXTERNAL_IP>/coffee
预期输出:
Server address: 192.168.xx.xx:80 Server name: coffee-8c8ff9b4f-hxxxx Date: 25/Sep/2020:12:36:47 +0000 URI: /coffee Request ID: 722fe41a65a7fb552613c56e0a9axxxx