本主题介绍如何安装预安装了入站网关的 Cloud Service Mesh。如果您需要 Ingress 控制器,则可以借助 Cloud Service Mesh 为您的 Deployment 配置 Kubernetes Ingress 资源。本主题提供的示例展示了如何配置示例 Deployment 和 Ingress 资源。
Cloud Service Mesh 的安装包括两个主要部分:
- 安装特定版本的 Cloud Service Mesh 客户管理的控制平面和入站网关。
- 使用修订版本标签为命名空间添加标签,并重新部署工作负载以注入 Sidecar 代理。
如果您只需要使用 Ingress 控制器的 Ingress 对象,则无需将边车代理注入工作负载 Pod。但如果您需要 Cloud Service Mesh 提供的安全优势,并且想要使用流量路由功能,则需要注入 Sidecar 代理。
准备工作
在开始使用 GKE on AWS 之前,请确保您已执行以下任务:
- 完成前提条件。
- 安装管理服务。
- 创建用户集群。
- 按照使用 Cloud 控制台连接到集群中的步骤向 Connect 注册集群。
- 配置集群以将 Workload Identity 与 Google Cloud搭配使用。
- 如果您的用户集群限制对互联网的出站访问权限,请允许访问以下容器代码库网域: - docker.io
- quay.io
 
- 在 - anthos-aws目录中,使用- anthos-gke将上下文切换到用户集群。- cd anthos-aws env HTTPS_PROXY=http://localhost:8118 \ anthos-gke aws clusters get-credentials CLUSTER_NAME 
安装 Anthos Service Mesh
按照安装 Cloud Service Mesh 中的步骤操作。
创建示例 Deployment
在本部分中,您将安装示例应用并为其创建 Ingress 端点。
- 创建 - hello-app的 Deployment 并为该部署创建 ClusterIP。将以下 YAML 复制到名为- hello-app.yaml的文件中。- apiVersion: apps/v1 kind: Deployment metadata: labels: app: hello-app name: hello-app spec: selector: matchLabels: app: hello-app replicas: 3 template: metadata: labels: app: hello-app spec: containers: - name: hello image: "gcr.io/google-samples/hello-app:2.0" --- apiVersion: v1 kind: Service metadata: labels: app: hello-app name: hello-app spec: type: ClusterIP selector: app: hello-app ports: - protocol: TCP port: 8080 targetPort: 8080
- 使用 - kubectl apply将 YAML 应用于您的集群。- env HTTPS_PROXY=http://localhost:8118 \ kubectl apply -f hello-app.yaml
- 为示例应用创建 Kubernetes Ingress。将以下 YAML 复制到名为 - hello-app-ingress.yaml的文件中。- apiVersion: networking.k8s.io/v1beta1 kind: Ingress metadata: annotations: kubernetes.io/ingress.class: istio labels: app: hello-app name: hello-app spec: rules: - host: http: paths: - backend: serviceName: hello-app servicePort: 8080
- 通过使用 - kubectl apply应用配置来创建 Ingress。- env HTTPS_PROXY=http://localhost:8118 \ kubectl apply -f hello-app-ingress.yaml
- 使用 - kubectl get svc检查网关的状态。- env HTTPS_PROXY=http://localhost:8118 \ kubectl get ingress hello-app- ADDRESS字段应具有 ELB 域名。如果- ADDRESS仍然为- pending,请确认您的 VPC 和子网标签。
- 您可以通过编写主机和端口来检查入站网关网址。要获取网关网址,请执行以下命令: - export INGRESS_URL=$(env HTTPS_PROXY=http://localhost:8118 \ kubectl get ingress hello-app -o jsonpath='{.status.loadBalancer.ingress[0].hostname}') echo "Your hello-app Ingress URL is: http://"$INGRESS_URL- 最后一个命令会输出 Ingress 的端点。 
- 如果您创建了公共 Ingress,则可以通过访问 - http://$INGRESS_URL/来查看- curl中的- hello-app默认网页。- curl $INGRESS_URL/
清理
您可以使用 kubectl delete 移除 hello-app 组件。
env HTTPS_PROXY=http://localhost:8118 \
  kubectl delete -f hello-app.yaml &&\
  kubectl delete -f hello-app-ingress.yaml
如果您要移除 Cloud Service Mesh,请参阅卸载 Cloud Service Mesh。
后续步骤
详细了解以下内容: