이 주제에서는 인그레스 게이트웨이가 사전 설치된 상태로 제공되는 Cloud Service Mesh를 설치하는 방법을 보여줍니다.
Cloud Service Mesh에서는 인그레스 컨트롤러가 필요한 경우 배포에 대해 Kubernetes 인그레스 리소스를 구성할 수 있습니다.
이 주제에서는 샘플 배포 및 인그레스 리소스를 구성하는 방법을 보여주는 예시를 제공합니다.
Cloud Service Mesh 설치는 다음 두 가지로 주요 단계로 구성됩니다.
Cloud Service Mesh 고객 관리 컨트롤 플레인 및 인그레스 게이트웨이의 특정 버전 설치
인그레스 컨트롤러를 사용하는 인그레스 객체만 필요한 경우에는 사이드카 프록시를 워크로드 포드에 삽입할 필요가 없습니다. 하지만 Cloud Service Mesh에서 제공하는 보안 이점이 필요하고 트래픽 라우팅 기능을 사용해야 할 경우에는 사이드카 프록시를 삽입해야 합니다.
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["이해하기 어려움","hardToUnderstand","thumb-down"],["잘못된 정보 또는 샘플 코드","incorrectInformationOrSampleCode","thumb-down"],["필요한 정보/샘플이 없음","missingTheInformationSamplesINeed","thumb-down"],["번역 문제","translationIssue","thumb-down"],["기타","otherDown","thumb-down"]],["최종 업데이트: 2025-09-04(UTC)"],[],[],null,["This topic shows you how to install Cloud Service Mesh, which comes preinstalled\nwith an [Ingress Gateway](https://istio.io/latest/docs/tasks/traffic-management/ingress/ingress-control/).\nWith Cloud Service Mesh, you can configure a\n[Kubernetes Ingress resource](https://kubernetes.io/docs/concepts/services-networking/ingress/)\nfor your Deployments if you need an\n[Ingress controller](https://kubernetes.io/docs/concepts/services-networking/ingress-controllers/).\nThis topic provides an example that shows you how to configure a sample\nDeployment and Ingress resource.\n\nThe installation of Cloud Service Mesh consists of two main parts:\n\n1. Installing a specific version of the Cloud Service Mesh [customer-managed control plane](/service-mesh/docs/glossary#control_plane) and Ingress Gateway.\n2. Labeling your namespaces with a [revision label](/service-mesh/docs/revisions-overview) and redeploying your workloads to inject a [sidecar proxy](/service-mesh/docs/proxy-injection).\n\nIf you only need to use an Ingress object using an Ingress controller, you don't\nhave to inject a sidecar proxy into your workload Pods. But if you want the\n[security benefits](/service-mesh/docs/overview#security_benefits) that\nCloud Service Mesh provides, and if you want to make use of the\n[traffic routing](/service-mesh/docs/overview#traffic_management) capabilities,\nyou need to inject the sidecar proxies.\n\nBefore you begin\n\n\nBefore you start using GKE on AWS, make sure you have performed the following tasks:\n\n- Complete the [Prerequisites](/kubernetes-engine/multi-cloud/docs/aws/previous-generation/how-to/prerequisites).\n\n\u003c!-- --\u003e\n\n- Install a [management service](/kubernetes-engine/multi-cloud/docs/aws/previous-generation/how-to/installing-management).\n- Create a [user cluster](/kubernetes-engine/multi-cloud/docs/aws/previous-generation/how-to/creating-user-cluster).\n- Register your cluster with Connect by following the steps in [Connecting to your cluster with Cloud console](/kubernetes-engine/multi-cloud/docs/aws/previous-generation/how-to/connecting-to-a-cluster).\n- Configure your cluster to [Use workload identity with Google Cloud](/kubernetes-engine/multi-cloud/docs/aws/previous-generation/how-to/workload-identity-gcp).\n- If your user clusters have restricted outbound access to the internet,\n allow access to the following container repository domains:\n\n - `docker.io`\n - `quay.io`\n- From your `anthos-aws` directory, use\n `anthos-gke` to switch context to your user cluster.\n\n ```sh\n cd anthos-aws\n env HTTPS_PROXY=http://localhost:8118 \\\n anthos-gke aws clusters get-credentials CLUSTER_NAME\n ```\n Replace \u003cvar translate=\"no\"\u003eCLUSTER_NAME\u003c/var\u003e with your user cluster name.\n\n \u003cbr /\u003e\n\nInstalling Anthos Service Mesh\n\nFollow the steps in\n[Install Cloud Service Mesh](/service-mesh/docs/unified-install/install).\n\nCreating an example Deployment\n\nIn this section, you install a sample application and create an Ingress endpoint\nfor it.\n\n1. Create a Deployment of `hello-app` and a ClusterIP for the deployment.\n Copy the following YAML into a file named `hello-app.yaml`.\n\n apiVersion: apps/v1\n kind: Deployment\n metadata:\n labels:\n app: hello-app\n name: hello-app\n spec:\n selector:\n matchLabels:\n app: hello-app\n replicas: 3\n template:\n metadata:\n labels:\n app: hello-app\n spec:\n containers:\n - name: hello\n image: \"gcr.io/google-samples/hello-app:2.0\"\n ---\n apiVersion: v1\n kind: Service\n metadata:\n labels:\n app: hello-app\n name: hello-app\n spec:\n type: ClusterIP\n selector:\n app: hello-app\n ports:\n - protocol: TCP\n port: 8080\n targetPort: 8080\n\n2. Apply the YAML to your cluster with `kubectl apply`.\n\n env HTTPS_PROXY=http://localhost:8118 \\\n kubectl apply -f hello-app.yaml\n\n3. Create a Kubernetes Ingress for the sample application. Copy the following\n YAML into a file named `hello-app-ingress.yaml`\n\n apiVersion: networking.k8s.io/v1beta1\n kind: Ingress\n metadata:\n annotations:\n kubernetes.io/ingress.class: istio\n labels:\n app: hello-app\n name: hello-app\n spec:\n rules:\n - host:\n http:\n paths:\n - backend:\n serviceName: hello-app\n servicePort: 8080\n\n4. Create the Ingress by applying the configuration with `kubectl apply`.\n\n env HTTPS_PROXY=http://localhost:8118 \\\n kubectl apply -f hello-app-ingress.yaml\n\n5. Check the status of your gateway with `kubectl get svc`.\n\n env HTTPS_PROXY=http://localhost:8118 \\\n kubectl get ingress hello-app\n\n The `ADDRESS` field should have an ELB domain name. If the `ADDRESS`\n remains `pending`, confirm your VPC and Subnet labeling.\n6. You can check the Ingress gateway URL by composing the host and port.\n To get your gateway URL, perform the following commands:\n\n export INGRESS_URL=$(env HTTPS_PROXY=http://localhost:8118 \\\n kubectl get ingress hello-app -o jsonpath='{.status.loadBalancer.ingress[0].hostname}')\n echo \"Your hello-app Ingress URL is: http://\"$INGRESS_URL\n\n The last command prints the endpoint of your Ingress.\n7. If you created a public Ingress, you can view the `hello-app` default web page\n in `curl` by visiting `http://$INGRESS_URL/`.\n\n curl $INGRESS_URL/\n\nCleaning up\n\nYou remove the `hello-app` components with `kubectl delete`. \n\n env HTTPS_PROXY=http://localhost:8118 \\\n kubectl delete -f hello-app.yaml &&\\\n kubectl delete -f hello-app-ingress.yaml\n\nIf you would like to remove Cloud Service Mesh, see\n[Uninstalling Cloud Service Mesh](/service-mesh/docs/uninstall#uninstalling).\n\nWhat's next\n\nLearn more about:\n\n- [Injecting sidecar proxies](/service-mesh/docs/proxy-injection)\n\n- [Naming service ports](/service-mesh/docs/naming-service-ports)\n\n- [Enabling Cloud Service Mesh optional features](/service-mesh/docs/enable-optional-features)\n\n- [Integrating with third-party add-ons](/service-mesh/docs/third-party-integrations)\n\n- [Configuring the Ingress Gateway](https://istio.io/latest/docs/tasks/traffic-management/ingress/ingress-control/)\n\n- [Routing traffic](https://istio.io/docs/tasks/traffic-management/ingress/)"]]