From ca6a97201db18ca780a6e4903bd0dacf1976de50 Mon Sep 17 00:00:00 2001 From: Gabor Szabo Date: Thu, 18 Nov 2021 09:52:47 +0200 Subject: [PATCH] kubernetes more partial examples --- docker/examples/k8s/kustomize/bases/ping.yml | 11 +++ .../projects/development/kustomization.yaml | 4 + .../k8s/ping/development-config-map.yml | 6 ++ .../k8s/ping/development-namespace.yml | 10 +++ docker/examples/k8s/ping/ping.yml | 11 +++ docker/examples/k8s/ping/ping_dev.yml | 9 +++ docker/examples/k8s/ping/ping_prod.yml | 9 +++ .../k8s/ping/production-config-map.yml | 6 ++ .../k8s/ping/production-namespace.yml | 10 +++ docker/kubernetes.md | 77 +++++++++++++++++++ 10 files changed, 153 insertions(+) create mode 100644 docker/examples/k8s/kustomize/bases/ping.yml create mode 100644 docker/examples/k8s/kustomize/projects/development/kustomization.yaml create mode 100644 docker/examples/k8s/ping/development-config-map.yml create mode 100644 docker/examples/k8s/ping/development-namespace.yml create mode 100644 docker/examples/k8s/ping/ping.yml create mode 100644 docker/examples/k8s/ping/ping_dev.yml create mode 100644 docker/examples/k8s/ping/ping_prod.yml create mode 100644 docker/examples/k8s/ping/production-config-map.yml create mode 100644 docker/examples/k8s/ping/production-namespace.yml diff --git a/docker/examples/k8s/kustomize/bases/ping.yml b/docker/examples/k8s/kustomize/bases/ping.yml new file mode 100644 index 000000000..7c4d95ee6 --- /dev/null +++ b/docker/examples/k8s/kustomize/bases/ping.yml @@ -0,0 +1,11 @@ +apiVersion: v1 +kind: Pod +metadata: + name: demo +spec: + containers: + - name: testpod + image: alpine:3.5 + configMap: + name: ping-demo + command: ["ping", HOSTNAME] diff --git a/docker/examples/k8s/kustomize/projects/development/kustomization.yaml b/docker/examples/k8s/kustomize/projects/development/kustomization.yaml new file mode 100644 index 000000000..c92fddd87 --- /dev/null +++ b/docker/examples/k8s/kustomize/projects/development/kustomization.yaml @@ -0,0 +1,4 @@ +resources: +- ../../bases/iam-iap-tunnel +transformers: +- ../../transformers/setProject diff --git a/docker/examples/k8s/ping/development-config-map.yml b/docker/examples/k8s/ping/development-config-map.yml new file mode 100644 index 000000000..c6d6350db --- /dev/null +++ b/docker/examples/k8s/ping/development-config-map.yml @@ -0,0 +1,6 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: ping-demo +data: + hostname: "code-maven.com" diff --git a/docker/examples/k8s/ping/development-namespace.yml b/docker/examples/k8s/ping/development-namespace.yml new file mode 100644 index 000000000..cb3ed7cdc --- /dev/null +++ b/docker/examples/k8s/ping/development-namespace.yml @@ -0,0 +1,10 @@ +{ + "apiVersion": "v1", + "kind": "Namespace", + "metadata": { + "name": "development", + "labels": { + "name": "development" + } + } +} diff --git a/docker/examples/k8s/ping/ping.yml b/docker/examples/k8s/ping/ping.yml new file mode 100644 index 000000000..7c4d95ee6 --- /dev/null +++ b/docker/examples/k8s/ping/ping.yml @@ -0,0 +1,11 @@ +apiVersion: v1 +kind: Pod +metadata: + name: demo +spec: + containers: + - name: testpod + image: alpine:3.5 + configMap: + name: ping-demo + command: ["ping", HOSTNAME] diff --git a/docker/examples/k8s/ping/ping_dev.yml b/docker/examples/k8s/ping/ping_dev.yml new file mode 100644 index 000000000..43bef5496 --- /dev/null +++ b/docker/examples/k8s/ping/ping_dev.yml @@ -0,0 +1,9 @@ +apiVersion: v1 +kind: Pod +metadata: + name: demo +spec: + containers: + - name: testpod + image: alpine:3.5 + command: ["ping", "code-maven.com"] diff --git a/docker/examples/k8s/ping/ping_prod.yml b/docker/examples/k8s/ping/ping_prod.yml new file mode 100644 index 000000000..7dda56b10 --- /dev/null +++ b/docker/examples/k8s/ping/ping_prod.yml @@ -0,0 +1,9 @@ +apiVersion: v1 +kind: Pod +metadata: + name: demo +spec: + containers: + - name: testpod + image: alpine:3.5 + command: ["ping", "mail.code-maven.com"] diff --git a/docker/examples/k8s/ping/production-config-map.yml b/docker/examples/k8s/ping/production-config-map.yml new file mode 100644 index 000000000..9529e937a --- /dev/null +++ b/docker/examples/k8s/ping/production-config-map.yml @@ -0,0 +1,6 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: ping-demo +data: + hostname: "mail.code-maven.com" diff --git a/docker/examples/k8s/ping/production-namespace.yml b/docker/examples/k8s/ping/production-namespace.yml new file mode 100644 index 000000000..878ba7866 --- /dev/null +++ b/docker/examples/k8s/ping/production-namespace.yml @@ -0,0 +1,10 @@ +{ + "apiVersion": "v1", + "kind": "Namespace", + "metadata": { + "name": "production", + "labels": { + "name": "production" + } + } +} diff --git a/docker/kubernetes.md b/docker/kubernetes.md index 5d4dd6c5b..5ee523685 100644 --- a/docker/kubernetes.md +++ b/docker/kubernetes.md @@ -244,6 +244,8 @@ minikube ssh ``` +kubectl config get-contexts + kubectl config current-context kubectl config use-context minikube kubectl config view @@ -335,4 +337,79 @@ kubectl apply -f load_balancer.yaml * See also this [example](https://www.digitalocean.com/community/meetup_kits/getting-started-with-containers-and-kubernetes-a-digitalocean-workshop-kit) +## Kubernetes hierarchy +{id: k8s-hierarchy} + + +``` +Clusters + Namespaces +Users +``` + +* Contexts - A context is a Cluster/Namespace/User triplet (I think) + +In the same cluster create 2 namespaces: +* development +* production + +![](examples/k8s/ping/development-namespace.yml) +![](examples/k8s/ping/production-namespace.yml) + +``` +kubectl apply -f development-namespace.yml +kubectl apply -f production-namespace.yml +kubectl get namespaces --show-labels +``` + +We still only have the main minikube context: + +``` +kubectl config get-contexts +``` + + +List the available clusters, users and namespaces: + +``` +kubectl config get-clusters +kubectl config get-users +kubectl get namespaces --show-labels +``` + +Create context for each environment: + +``` +kubectl config set-context development --namespace=development --cluster=minikube --user=minikube +kubectl config set-context production --namespace=production --cluster=minikube --user=minikube +``` + +Switch to context: + +``` +kubectl config use-context development +``` + +Alternatively we could add `--context development` at the end of the individual commands. + +get the current context + +``` +kubectl config current-context +``` + + +kubectl apply -f development-config-map.yml --context development + + +Make sure the right configuration is used in each namespace + + +``` +kubectl apply -k base +kubectl delete -k base + +kubectl kustomize base/ + +```