Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/yamaceay/ratingservice
https://github.com/yamaceay/ratingservice
Last synced: 4 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/yamaceay/ratingservice
- Owner: yamaceay
- License: apache-2.0
- Created: 2023-01-14T13:50:15.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2023-02-14T13:03:09.000Z (almost 2 years ago)
- Last Synced: 2024-06-21T22:59:23.695Z (7 months ago)
- Language: Go
- Size: 48.7 MB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Codeowners: CODEOWNERS
- Security: SECURITY.md
Awesome Lists containing this project
README
# Build instructions (copied from microservices-demo development guide)
## Prerequisites
- [Docker for Desktop](https://www.docker.com/products/docker-desktop).
- kubectl (can be installed via `gcloud components install kubectl`)
- [skaffold **2.0+**](https://skaffold.dev/docs/install/) (latest version recommended), a tool that builds and deploys Docker images in bulk.
- A Google Cloud Project with Google Container Registry enabled.
- Enable GCP APIs for Cloud Monitoring, Tracing, Profiler:
```
gcloud services enable monitoring.googleapis.com \
cloudtrace.googleapis.com \
cloudprofiler.googleapis.com
```
- [Minikube](https://minikube.sigs.k8s.io/docs/start/) (optional - see Local Cluster)
- [Kind](https://kind.sigs.k8s.io/) (optional - see Local Cluster)## Option 1: Google Kubernetes Engine (GKE)
> đź’ˇ Recommended if you're using Google Cloud Platform and want to try it on
> a realistic cluster. **Note**: If your cluster has Workload Identity enabled,
> [see these instructions](https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity#enable)1. Create a Google Kubernetes Engine cluster and make sure `kubectl` is pointing
to the cluster.```sh
gcloud services enable container.googleapis.com
``````sh
gcloud container clusters create demo --enable-autoupgrade \
--enable-autoscaling --min-nodes=3 --max-nodes=10 --num-nodes=5 --zone=us-central1-a
``````
kubectl get nodes
```2. Enable Google Container Registry (GCR) on your GCP project and configure the
`docker` CLI to authenticate to GCR:```sh
gcloud services enable containerregistry.googleapis.com
``````sh
gcloud auth configure-docker -q
```3. In the root of this repository, run `skaffold run --default-repo=gcr.io/[PROJECT_ID]`,
where [PROJECT_ID] is your GCP project ID.This command:
- builds the container images
- pushes them to GCR
- applies the `./kubernetes-manifests` deploying the application to
Kubernetes.**Troubleshooting:** If you get "No space left on device" error on Google
Cloud Shell, you can build the images on Google Cloud Build: [Enable the
Cloud Build
API](https://console.cloud.google.com/flows/enableapi?apiid=cloudbuild.googleapis.com),
then run `skaffold run -p gcb --default-repo=gcr.io/[PROJECT_ID]` instead.4. Find the IP address of your application, then visit the application on your
browser to confirm installation.kubectl get service frontend-external
5. Do not forget to delete the cluster after testing :)
gcloud container clusters delete demo --zone=us-central1-a## Option 2 - Local Cluster
1. Launch a local Kubernetes cluster with one of the following tools:
- To launch **Minikube** (tested with Ubuntu Linux). Please, ensure that the
local Kubernetes cluster has at least:
- 4 CPUs
- 4.0 GiB memory
- 32 GB disk space```shell
minikube start --cpus=4 --memory 4096 --disk-size 32g
```- To launch **Docker for Desktop** (tested with Mac/Windows). Go to Preferences:
- choose “Enable Kubernetes”,
- set CPUs to at least 3, and Memory to at least 6.0 GiB
- on the "Disk" tab, set at least 32 GB disk space- To launch a **Kind** cluster:
```shell
kind create cluster
```2. Run `kubectl get nodes` to verify you're connected to the respective control plane.
3. Run `skaffold run` (first time will be slow, it can take ~20 minutes).
This will build and deploy the application. If you need to rebuild the images
automatically as you refactor the code, run `skaffold dev` command.4. Run `kubectl get pods` to verify the Pods are ready and running.
5. Run `kubectl port-forward deployment/frontend 8080:8080` to forward a port to the frontend service.
6. Navigate to `localhost:8080` to access the web frontend.
## Cleanup
If you've deployed the application with `skaffold run` command, you can run
`skaffold delete` to clean up the deployed resources.