本文主要介紹在虛擬節點上部署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