Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/robandpdx/k8s-canary-demo
https://github.com/robandpdx/k8s-canary-demo
kubernetes
Last synced: about 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/robandpdx/k8s-canary-demo
- Owner: robandpdx
- License: mit
- Created: 2023-03-22T05:22:06.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2023-03-24T19:04:31.000Z (almost 2 years ago)
- Last Synced: 2024-11-04T11:11:55.445Z (2 months ago)
- Topics: kubernetes
- Language: Shell
- Homepage:
- Size: 7.81 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# k8s-canary-demo
This repo is a step my step demo of [canary release on k8s using linkerd and flagger](https://linkerd.io/2.12/tasks/canary-release/).
## Prerequisutes
1. A k8s cluster
You can use any k8s cluster for this demo. I prefer to use a [kind cluster](https://kind.sigs.k8s.io/docs/user/quick-start/) locally.
```
kind create cluster --config kind-config.yml
```
2. [linkerd cli](https://linkerd.io/2.12/getting-started/#step-1-install-the-cli)## Setup
1. Run the `install.sh` script to [install the prerequisites](https://linkerd.io/2.12/tasks/canary-release/#prerequisites) in k8s, and [setup the demo](https://linkerd.io/2.12/tasks/canary-release/#set-up-the-demo) in k8s.
2. Verify that everything has started up successfully by running:
```
kubectl -n test rollout status deploy podinfo
```
3. Run the following command, then point your web browser to http://localhost:8080
```
kubectl -n test port-forward svc/frontend 8080
```
4. Configure the release by running:
```
kubectl apply -f podinfo-canary.yml
```
To configure a canary release that will fail and rollback, use:
```
kubectl apply -f podinfo-canary-fail.yml
```
## Demo
Continue to follow this document... s
https://linkerd.io/2.12/tasks/canary-release/#start-the-rolloutTo use a more recent version of podinfo, run the following command for rollout...
```
kubectl -n test set image deployment/podinfo \
podinfod=ghcr.io/stefanprodan/podinfo:6.0.1
```## Notes
Other version of podinfo to use are `6.0.1`, `6.0.2`, `6.0.3`, `6.0.4`, `6.1.0`, `6.1.1`, `6.1.2`, `6.1.3`, `6.1.4`, `6.1.5`, `6.1.6`.