microservices-demo
Kubernetes, Istio, gRPC를 선보이는 10개의 마이크로서비스로 구성된 샘플 클라우드 퍼스트(cloud-first) 애플리케이션입니다.
파일 탐색기
- description.txt
- success.txt
- preinit.sh
- deploystack.yaml
- test
- test.yaml
- bug-report.md
- feature-request.md
- other.md
- backend-config.yaml
- frontend-config.yaml
- frontend-ingress.yaml
- frontend-service.yaml
- managed-cert.yaml
- README.md
- main.tf
- README.md
- variables.tf
- versions.tf
- ci-main.yaml
- ci-pr.yaml
- cleanup.yaml
- deploy-pr.yaml
- helm-chart-ci.yaml
- kubevious-manifests-ci.yaml
- kustomize-build-ci.yaml
- make-release.yaml
- README.md
- terraform-validate-ci.yaml
- auto-approve.yml
- CODE_OF_CONDUCT.md
- CODEOWNERS
- CONTRIBUTING.md
- header-checker-lint.yml
- pull_request_template.md
- renovate.json5
- SECURITY.md
- snippet-bot.yml
- architecture-diagram.png
- memorystore.png
- online-boutique-frontend-1.png
- online-boutique-frontend-2.png
- license_header.txt
- make-docker-images.sh
- make-helm-chart.sh
- make-release-artifacts.sh
- make-release.sh
- README.md
- adding-new-microservice.md
- cloudshell-tutorial.md
- deploystack.md
- development-guide.md
- product-requirements.md
- purpose.md
- adservice.yaml
- cartservice.yaml
- checkoutservice.yaml
- common.yaml
- currencyservice.yaml
- emailservice.yaml
- frontend.yaml
- loadgenerator.yaml
- NOTES.txt
- opentelemetry-collector.yaml
- paymentservice.yaml
- productcatalogservice.yaml
- recommendationservice.yaml
- shippingservice.yaml
- Chart.yaml
- README.md
- values.yaml
- allow-egress-googleapis.yaml
- frontend-gateway.yaml
- frontend.yaml
- adservice.yaml
- cartservice.yaml
- checkoutservice.yaml
- currencyservice.yaml
- emailservice.yaml
- frontend.yaml
- kustomization.yaml
- loadgenerator.yaml
- paymentservice.yaml
- productcatalogservice.yaml
- README.md
- recommendationservice.yaml
- shippingservice.yaml
- adservice.yaml
- cartservice.yaml
- checkoutservice.yaml
- currencyservice.yaml
- emailservice.yaml
- frontend.yaml
- kustomization.yaml
- loadgenerator.yaml
- paymentservice.yaml
- productcatalogservice.yaml
- recommendationservice.yaml
- shippingservice.yaml
- kustomization.yaml
- README.md
- kustomization.yaml
- README.md
- kustomization.yaml
- README.md
- kustomization.yaml
- README.md
- kustomization.yaml
- README.md
- kustomization.yaml
- README.md
- collector-model.png
- kustomization.yaml
- otel-collector.yaml
- README.md
- kustomization.yaml
- README.md
- kustomization.yaml
- network-policy-adservice.yaml
- network-policy-cartservice.yaml
- network-policy-checkoutservice.yaml
- network-policy-currencyservice.yaml
- network-policy-deny-all.yaml
- network-policy-emailservice.yaml
- network-policy-frontend.yaml
- network-policy-loadgenerator.yaml
- network-policy-paymentservice.yaml
- network-policy-productcatalogservice.yaml
- network-policy-recommendationservice.yaml
- network-policy-redis.yaml
- network-policy-shippingservice.yaml
- README.md
- kustomization.yaml
- README.md
- allow-egress-googleapis.yaml
- frontend-gateway.yaml
- frontend.yaml
- kustomization.yaml
- README.md
- 1_deploy_alloydb_infra.sh
- 2_create_populate_alloydb_tables.sh
- generate_sql_from_products.py
- kustomization.yaml
- README.md
- shoppingassistantservice.yaml
- kustomization.yaml
- README.md
- kustomization.yaml
- README.md
- delete-loadgenerator.patch.yaml
- kustomization.yaml
- README.md
- kustomization.yaml
- kustomization.yaml
- kustomization.yaml
- README.md
- kustomization.yaml
- README.md
- health.proto
- demo.proto
- istio-manifests.yaml
- kubernetes-manifests.yaml
- gradle-wrapper.jar
- gradle-wrapper.properties
- AdService.java
- AdServiceClient.java
- demo.proto
- log4j2.xml
- build.gradle
- Dockerfile
- genproto.sh
- gradlew
- gradlew.bat
- README.md
- settings.gradle
- AlloyDBCartStore.cs
- ICartStore.cs
- RedisCartStore.cs
- SpannerCartStore.cs
- Cart.proto
- CartService.cs
- HealthCheckService.cs
- .dockerignore
- appsettings.json
- cartservice.csproj
- Dockerfile
- Dockerfile.debug
- Program.cs
- Startup.cs
- cartservice.tests.csproj
- CartServiceTests.cs
- cartservice.sln
- demo.pb.go
- demo_grpc.pb.go
- money.go
- money_test.go
- .dockerignore
- Dockerfile
- genproto.sh
- go.mod
- go.sum
- main.go
- README.md
- currency_conversion.json
- health.proto
- demo.proto
- .dockerignore
- .gitignore
- client.js
- Dockerfile
- genproto.sh
- package-lock.json
- package.json
- server.js
- confirmation.html
- demo_pb2.py
- demo_pb2_grpc.py
- Dockerfile
- email_client.py
- email_server.py
- genproto.sh
- logger.py
- requirements.in
- requirements.txt
- demo.pb.go
- demo_grpc.pb.go
- money.go
- money_test.go
- Cymbal_NavLogo.svg
- Hipster_Advert2.svg
- Hipster_CartIcon.svg
- Hipster_CheckOutIcon.svg
- Hipster_CurrencyIcon.svg
- Hipster_DownArrow.svg
- Hipster_FacebookIcon.svg
- Hipster_GooglePlayIcon.svg
- Hipster_HelpIcon.svg
- Hipster_HeroLogo.svg
- Hipster_HeroLogoMaroon.svg
- Hipster_InstagramIcon.svg
- Hipster_KitchenwareOffer.svg
- Hipster_NavLogo.svg
- Hipster_PinterestIcon.svg
- Hipster_ProfileIcon.svg
- Hipster_SearchIcon.svg
- Hipster_TwitterIcon.svg
- Hipster_UpDownControl.svg
- Hipster_WandIcon.svg
- Hipster_YoutubeIcon.svg
- Advert2BannerImage.png
- AdvertBannerImage.png
- credits.txt
- folded-clothes-on-white-chair-wide.jpg
- folded-clothes-on-white-chair.jpg
- HeroBannerImage.png
- HeroBannerImage2.png
- VRHeadsets.png
- bamboo-glass-jar.jpg
- candle-holder.jpg
- hairdryer.jpg
- loafers.jpg
- mug.jpg
- salt-and-pepper-shakers.jpg
- sunglasses.jpg
- tank-top.jpg
- watch.jpg
- bot.css
- cart.css
- order.css
- styles.css
- favicon-cymbal.ico
- favicon.ico
- ad.html
- assistant.html
- cart.html
- error.html
- footer.html
- header.html
- home.html
- order.html
- product.html
- recommendations.html
- validator.go
- validator_test.go
- .dockerignore
- .gitkeep
- deployment_details.go
- Dockerfile
- genproto.sh
- go.mod
- go.sum
- handlers.go
- main.go
- middleware.go
- packaging_info.go
- README.md
- rpc.go
- Dockerfile
- locustfile.py
- requirements.in
- requirements.txt
- health.proto
- demo.proto
- .dockerignore
- charge.js
- Dockerfile
- genproto.sh
- index.js
- logger.js
- package-lock.json
- package.json
- server.js
- demo.pb.go
- demo_grpc.pb.go
- .dockerignore
- catalog_loader.go
- Dockerfile
- genproto.sh
- go.mod
- go.sum
- product_catalog.go
- product_catalog_test.go
- products.json
- README.md
- server.go
- client.py
- demo_pb2.py
- demo_pb2_grpc.py
- Dockerfile
- genproto.sh
- logger.py
- recommendation_server.py
- requirements.in
- requirements.txt
- demo.pb.go
- demo_grpc.pb.go
- .dockerignore
- Dockerfile
- genproto.sh
- go.mod
- go.sum
- main.go
- quote.go
- README.md
- shippingservice_test.go
- tracker.go
- Dockerfile
- requirements.in
- requirements.txt
- shoppingassistantservice.py
- main.tf
- memorystore.tf
- output.tf
- providers.tf
- README.md
- terraform.tfvars
- variables.tf
- .editorconfig
- .gitattributes
- .gitignore
- cloudbuild.yaml
- LICENSE
- README.md
- skaffold.yaml
# 설치 가이드
kubernetes / docker / go설치 및 실행 절차
git clone --depth 1 --branch v0 https://github.com/GoogleCloudPlatform/microservices-demo.git
저장소를 클론합니다.
export PROJECT_ID=<PROJECT_ID>
구글 클라우드 프로젝트 ID를 설정합니다.
gcloud container clusters create-auto online-boutique --project=${PROJECT_ID} --region=us-central1
GKE 오토 파일럿 클러스터를 생성합니다.
kubectl apply -f ./release/kubernetes-manifests.yaml
쿠버네티스 매니페스트를 배포합니다.
핵심 명령어
gcloud services enable container.googleapis.com --project=my-project
GKE API 등 필요한 구글 클라우드 서비스를 활성화합니다.
kubectl apply -f ./release/kubernetes-manifests.yaml
쿠버네티스 리소스를 클러스터에 적용하여 애플리케이션을 배포합니다.
kubectl get pods
클러스터 내의 파드 실행 상태를 확인합니다.
# CDN으로 사용하기
jsDelivrjsDelivr는 공개 GitHub 리포지토리를 별도 설정 없이 CDN으로 즉시 서빙합니다. 버전과 파일을 고르면 웹페이지에 바로 붙일 수 있는 링크와 예시 코드가 만들어집니다.
릴리즈 타임라인
활발히 관리 중명령어 용어집
이 문서에서 사용된 명령어를 모아봤습니다. 낯선 명령어가 있다면 펼쳐서 확인해보세요.
gcloud container
설명 보기 ▼
gcloud container
Manage containerized applications on Kubernetes and clusters.
See also: `gcloud`.
gcloud auth configure-docker
Register `gcloud` as a Docker credential helper:
gcloud container clusters create {{cluster_name}}
Create a cluster to run GKE containers:
gcloud container clusters list
List clusters for running GKE containers:
gcloud
설명 보기 ▼
gcloud
Google Cloud Platform을 위한 공식 CLI 도구.
참고: `gcloud` 하위 명령에는 자체 사용 설명서가 있습니다.
더 많은 정보: <https://docs.cloud.google.com/sdk/gcloud>.
gcloud config list
활성 구성에서 모든 속성 나열:
gcloud auth login
Google 계정에 로그인:
gcloud config set project {{project_name}}
활성 프로젝트 설정:
git clone
설명 보기 ▼
git clone
Clone an existing repository.
git clone {{remote_repository_location}} {{path/to/directory}}
Clone an existing repository into a new directory (the default directory is the repository name):
git clone --recursive {{remote_repository_location}}
Clone an existing repository and its submodules:
git clone {{[-n|--no-checkout]}} {{remote_repository_location}}
Clone only the `.git` directory of an existing repository:
git
설명 보기 ▼
git
분산 버전 관리 시스템.
`commit`, `add`, `branch`, `checkout`, `push` 등의 특정 하위 명령어는 고유의 문서가 따로 있습니다.
더 많은 정보: <https://git-scm.com/docs/git>.
git init
하위 명령어 실행:
git clone {{https://example.com/repo.git}}
특정 레파지토리 위치에서 Git 하위 명령어 실행:
git status
주어진 설정으로 Git 하위 명령어 실행:
kubectl apply
설명 보기 ▼
kubectl apply
Manage applications through files defining Kubernetes resources.
Create and update resources in a cluster.
kubectl apply {{[-f|--filename]}} {{path/to/file}}
Apply a configuration to a resource by file name:
kubectl apply {{[-k|--kustomize]}} {{path/to/directory}}
Apply a configuration to a resource from `kustomization.yaml` in a directory:
{{cat pod.json}} | kubectl apply {{[-f|--filename]}} -
Apply a configuration to a resource by `stdin`:
kubectl get
설명 보기 ▼
kubectl get
Get Kubernetes objects and resources.
kubectl get {{[ns|namespaces]}}
Get all namespaces in the current cluster:
kubectl get {{[no|nodes]}} {{[-n|--namespace]}} {{namespace}}
Get nodes in a specified namespace:
kubectl get {{[po|pods]}} {{[-n|--namespace]}} {{namespace}}
Get pods in a specified namespace:
kubectl
설명 보기 ▼
kubectl
Kubernetes 클러스터에서 명령을 실행하기 위한 명령줄 인터페이스.
`run`과 같은 일부 하위 명령에는 자체 사용 설명서가 있습니다.
더 많은 정보: <https://kubernetes.io/docs/reference/kubectl/>.
kubectl get {{pods|service|deployment|ingress|...}} {{[-o|--output]}} wide
리소스에 대한 정보를 자세히 나열:
kubectl label pods {{name}} unhealthy=true
지정된 포드에 'unhealthy' 레이블과 'true' 값을 추가:
kubectl get all
다양한 유형의 모든 리소스 나열:
kustomize
설명 보기 ▼
kustomize
Kubernetes 리소스를 쉽게 배포.
더 많은 정보: <https://github.com/kubernetes-sigs/kustomize/blob/master/site/content/en/docs/Reference/CLI/_index.md>.
kustomize create --resources {{deployment.yaml,service.yaml}} --namespace {{staging}}
리소스 및 네임스페이스가 포함된 커스터마이제이션 파일 생성:
kustomize build . | kubectl apply {{[-f|--filename]}} -
커스터마이제이션 파일을 빌드하고 `kubectl`로 배포:
kustomize edit set image {{busybox=alpine:3.6}}
커스터마이제이션 파일에 이미지 설정:
