Huawei Cloud

Follow these instructions to prepare a cluster for Istio using the Huawei Cloud Container Engine. You can deploy a Kubernetes cluster to Huawei Cloud quickly and easily in the Cloud Container Engine Console, which fully supports Istio.

Huawei offers a managed control plane add-on for the Huawei Cloud Container Engine, which you can use instead of installing Istio manually. Refer to Huawei Application Service Mesh for details and instructions.

Following the Huawei Cloud Instructions to prepare a cluster before manually installing Istio, proceed as follows:

  1. Log in to the CCE console. Choose Dashboard > Buy Cluster to open the Buy Hybrid Cluster page. An alternative way to open that page is to choose Resource Management > Clusters in the navigation pane and click Buy next to Hybrid Cluster.

  2. On the Configure Cluster page, configure cluster parameters. In this example, a majority of parameters retain default values. After the cluster configuration is complete, click Next: Create Node to go to the node creation page.

    Istio release has some requirements for the Kubernetes version, select the version according to Istio’s support policy.

    The image below shows the GUI where you create and configure the cluster:

    Configure Cluster

    Configure Cluster

  3. On the node creation page, configure the following parameters

    Istio adds some additional resource consumption, from our experience, reserve at least 4 vCPU and 8 GB memory to begin playing.

    The image below shows the GUI where you create and configure the node:

    Configure Node

    Configure Node

  4. Configure kubectl

  5. Now you can install Istio on CCE cluster according to install guide.

  6. Configure ELB to expose Istio ingress gateway if needed.

    • Create Elastic Load Balancer

    • Bind the ELB instance to istio-ingressgateway service

      Set the ELB instance ID and loadBalancerIP to istio-ingressgateway.

  1. $ kubectl apply -f - <<EOF
  2. apiVersion: v1
  3. kind: Service
  4. metadata:
  5. annotations:
  6. kubernetes.io/elb.class: union
  7. kubernetes.io/elb.id: 4ee43d2b-cec5-4100-89eb-2f77837daa63 # ELB ID
  8. kubernetes.io/elb.lb-algorithm: ROUND_ROBIN
  9. labels:
  10. app: istio-ingressgateway
  11. install.operator.istio.io/owning-resource: unknown
  12. install.operator.istio.io/owning-resource-namespace: istio-system
  13. istio: ingressgateway
  14. istio.io/rev: default
  15. operator.istio.io/component: IngressGateways
  16. operator.istio.io/managed: Reconcile
  17. operator.istio.io/version: 1.9.0
  18. release: istio
  19. name: istio-ingressgateway
  20. namespace: istio-system
  21. spec:
  22. clusterIP: 10.247.7.192
  23. externalTrafficPolicy: Cluster
  24. loadBalancerIP: 119.8.36.132 ## ELB EIP
  25. ports:
  26. - name: status-port
  27. nodePort: 32484
  28. port: 15021
  29. protocol: TCP
  30. targetPort: 15021
  31. - name: http2
  32. nodePort: 30294
  33. port: 80
  34. protocol: TCP
  35. targetPort: 8080
  36. - name: https
  37. nodePort: 31301
  38. port: 443
  39. protocol: TCP
  40. targetPort: 8443
  41. - name: tcp
  42. nodePort: 30229
  43. port: 31400
  44. protocol: TCP
  45. targetPort: 31400
  46. - name: tls
  47. nodePort: 32028
  48. port: 15443
  49. protocol: TCP
  50. targetPort: 15443
  51. selector:
  52. app: istio-ingressgateway
  53. istio: ingressgateway
  54. sessionAffinity: None
  55. type: LoadBalancer
  56. EOF

Start playing with Istio by trying out the various tasks.