From b3cf30f804cf0ceb93d6d31712ec72a8b4b993a8 Mon Sep 17 00:00:00 2001 From: Bridget Kromhout Date: Sun, 15 Jul 2018 13:23:33 -0500 Subject: [PATCH 01/15] Add oscon slides --- slides/index.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/slides/index.yaml b/slides/index.yaml index 2d570c5e..1f8687dd 100644 --- a/slides/index.yaml +++ b/slides/index.yaml @@ -29,6 +29,7 @@ event: OSCON title: Kubernetes 101 speaker: bridgetkromhout + slides: https://oscon2018.container.training/ attend: https://conferences.oreilly.com/oscon/oscon-or/public/schedule/detail/66287 - date: 2018-06-27 From 8ba5d6d736b888cff2af25b154b8a848d5ffda80 Mon Sep 17 00:00:00 2001 From: Bridget Kromhout Date: Mon, 16 Jul 2018 13:32:53 -0700 Subject: [PATCH 02/15] This info isn't shown anymore by kubectl get --- slides/kube/concepts-k8s.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/slides/kube/concepts-k8s.md b/slides/kube/concepts-k8s.md index bcc9ffb3..95a2b7d4 100644 --- a/slides/kube/concepts-k8s.md +++ b/slides/kube/concepts-k8s.md @@ -239,7 +239,7 @@ Yes! - namespace (more-or-less isolated group of things) - secret (bundle of sensitive data to be passed to a container) - And much more! (We can see the full list by running `kubectl get`) + And much more! (We can see the full list by running `kubectl api-resources`) --- From 8e9991a860a31307c9458c45db922b1211865a0e Mon Sep 17 00:00:00 2001 From: Bridget Kromhout Date: Mon, 16 Jul 2018 13:38:28 -0700 Subject: [PATCH 03/15] Switching from `get` to use kubectl api-resources --- slides/kube/kubectlget.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/slides/kube/kubectlget.md b/slides/kube/kubectlget.md index f910dfb5..2973ad6b 100644 --- a/slides/kube/kubectlget.md +++ b/slides/kube/kubectlget.md @@ -83,7 +83,7 @@ - `kubectl` has pretty good introspection facilities -- We can list all available resource types by running `kubectl get` +- We can list all available resource types by running `kubectl api-resources` (this used to be `kubectl get`) - We can view details about a resource with: ```bash From 8af5a10407bb7df4f2c3ac5ce0f90e2d9c8ca3e9 Mon Sep 17 00:00:00 2001 From: Bridget Kromhout Date: Mon, 16 Jul 2018 13:45:26 -0700 Subject: [PATCH 04/15] coredns instead of kube-dns --- slides/kube/kubectlget.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/slides/kube/kubectlget.md b/slides/kube/kubectlget.md index 2973ad6b..8098e788 100644 --- a/slides/kube/kubectlget.md +++ b/slides/kube/kubectlget.md @@ -224,7 +224,7 @@ The `kube-system` namespace is used for the control plane. - `kube-controller-manager` and `kube-scheduler` are other master components -- `kube-dns` is an additional component (not mandatory but super useful, so it's there) +- `coredns` provides DNS-based service discovery ([replacing kube-dns as of 1.11](https://kubernetes.io/blog/2018/07/10/coredns-ga-for-kubernetes-cluster-dns/)) - `kube-proxy` is the (per-node) component managing port mappings and such From 29c1bc47d4d48403032af5338d429feac2d8bc8d Mon Sep 17 00:00:00 2001 From: Bridget Kromhout Date: Mon, 16 Jul 2018 13:53:27 -0700 Subject: [PATCH 05/15] Replace kube-dns with CoreDNS --- slides/kube/kubectlexpose.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/slides/kube/kubectlexpose.md b/slides/kube/kubectlexpose.md index 850b678c..7da43220 100644 --- a/slides/kube/kubectlexpose.md +++ b/slides/kube/kubectlexpose.md @@ -6,7 +6,7 @@ - If we want to connect to our pod(s), we need to create a *service* -- Once a service is created, `kube-dns` will allow us to resolve it by name +- Once a service is created, CoreDNS will allow us to resolve it by name (i.e. after creating service `hello`, the name `hello` will resolve to something) @@ -46,7 +46,7 @@ Under the hood: `kube-proxy` is using a userland proxy and a bunch of `iptables` - `ExternalName` - - the DNS entry managed by `kube-dns` will just be a `CNAME` to a provided record + - the DNS entry managed by CoreDNS will just be a `CNAME` to a provided record - no port, no IP address, no nothing else is allocated The `LoadBalancer` type is currently only available on AWS, Azure, and GCE. @@ -179,7 +179,7 @@ class: extra-details - Since there is no virtual IP address, there is no load balancer either -- `kube-dns` will return the pods' IP addresses as multiple `A` records +- CoreDNS will return the pods' IP addresses as multiple `A` records - This gives us an easy way to discover all the replicas for a deployment From 8a8e97f6e2d6cec0b4fba024f8f66bc2116946a3 Mon Sep 17 00:00:00 2001 From: Jerome Petazzoni Date: Mon, 16 Jul 2018 16:42:01 -0500 Subject: [PATCH 06/15] Add Jerome's training, September in Paris --- slides/index.yaml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/slides/index.yaml b/slides/index.yaml index 1f8687dd..7edf0a58 100644 --- a/slides/index.yaml +++ b/slides/index.yaml @@ -23,6 +23,15 @@ speaker: jpetazzo attend: https://conferences.oreilly.com/velocity/vl-ny/public/schedule/detail/69875 +- date: 2018-09-17 + country: fr + city: Paris + event: ENIX SAS + speaker: jpetazzo + title: Déployer ses applications avec Kubernetes (in French) + lang: fr + attend: https://enix.io/fr/services/formation/deployer-ses-applications-avec-kubernetes/ + - date: 2018-07-17 city: Portland, OR country: us From 134d24e23b9a9672f3d4c59c8cc2b73d868550f1 Mon Sep 17 00:00:00 2001 From: Bridget Kromhout Date: Mon, 16 Jul 2018 15:08:07 -0700 Subject: [PATCH 07/15] AKS name change --- slides/kube/links-bridget.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/slides/kube/links-bridget.md b/slides/kube/links-bridget.md index 1c9601da..f01f2011 100644 --- a/slides/kube/links-bridget.md +++ b/slides/kube/links-bridget.md @@ -6,7 +6,7 @@ - [Play With Kubernetes Hands-On Labs](https://medium.com/@marcosnils/introducing-pwk-play-with-k8s-159fcfeb787b) -- [Azure Container Service](https://docs.microsoft.com/azure/aks/) +- [Azure Kubernetes Service](https://docs.microsoft.com/azure/aks/) - [Cloud Developer Advocates](https://developer.microsoft.com/advocates/) From 103261ea352d3c7964b6fa8e03980c11a104d57b Mon Sep 17 00:00:00 2001 From: Jerome Petazzoni Date: Mon, 16 Jul 2018 18:07:07 -0500 Subject: [PATCH 08/15] Update a couple of references to kube-dns; and cosmetic tweaks --- slides/kube/concepts-k8s.md | 6 +++++- slides/kube/kubectlget.md | 4 +++- slides/kube/namespaces.md | 2 +- slides/kube/whatsnext.md | 2 +- 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/slides/kube/concepts-k8s.md b/slides/kube/concepts-k8s.md index 95a2b7d4..abda0ec2 100644 --- a/slides/kube/concepts-k8s.md +++ b/slides/kube/concepts-k8s.md @@ -239,7 +239,11 @@ Yes! - namespace (more-or-less isolated group of things) - secret (bundle of sensitive data to be passed to a container) - And much more! (We can see the full list by running `kubectl api-resources`) + And much more! + +- We can see the full list by running `kubectl api-resources` + + (Up until Kubernetes 1.10, the command to list API resources was `kubectl get`) --- diff --git a/slides/kube/kubectlget.md b/slides/kube/kubectlget.md index 8098e788..096dac00 100644 --- a/slides/kube/kubectlget.md +++ b/slides/kube/kubectlget.md @@ -83,7 +83,9 @@ - `kubectl` has pretty good introspection facilities -- We can list all available resource types by running `kubectl api-resources` (this used to be `kubectl get`) +- We can list all available resource types by running `kubectl api-resources` +
+ (up to Kubernetes 1.10, this command used to be `kubectl get`) - We can view details about a resource with: ```bash diff --git a/slides/kube/namespaces.md b/slides/kube/namespaces.md index 9993a0d9..87b5b546 100644 --- a/slides/kube/namespaces.md +++ b/slides/kube/namespaces.md @@ -151,7 +151,7 @@ Note: it might take a minute or two for the app to be up and running. - A pod in the `default` namespace can communicate with a pod in the `kube-system` namespace -- `kube-dns` uses a different subdomain for each namespace +- CoreDNS uses a different subdomain for each namespace - Example: from any pod in the cluster, you can connect to the Kubernetes API with: diff --git a/slides/kube/whatsnext.md b/slides/kube/whatsnext.md index 263da980..bbce2681 100644 --- a/slides/kube/whatsnext.md +++ b/slides/kube/whatsnext.md @@ -28,7 +28,7 @@ And *then* it is time to look at orchestration! - Each of the two `redis` services has its own `ClusterIP` -- `kube-dns` creates two entries, mapping to these two `ClusterIP` addresses: +- CoreDNS creates two entries, mapping to these two `ClusterIP` addresses: `redis.blue.svc.cluster.local` and `redis.green.svc.cluster.local` From 065310901f39205c0656b7c339d2fe3a56017e0c Mon Sep 17 00:00:00 2001 From: Bridget Kromhout Date: Mon, 16 Jul 2018 13:32:53 -0700 Subject: [PATCH 09/15] This info isn't shown anymore by kubectl get --- slides/kube/concepts-k8s.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/slides/kube/concepts-k8s.md b/slides/kube/concepts-k8s.md index bcc9ffb3..95a2b7d4 100644 --- a/slides/kube/concepts-k8s.md +++ b/slides/kube/concepts-k8s.md @@ -239,7 +239,7 @@ Yes! - namespace (more-or-less isolated group of things) - secret (bundle of sensitive data to be passed to a container) - And much more! (We can see the full list by running `kubectl get`) + And much more! (We can see the full list by running `kubectl api-resources`) --- From 96bf00c59b80e0a55718fa864ccae41558544087 Mon Sep 17 00:00:00 2001 From: Bridget Kromhout Date: Mon, 16 Jul 2018 13:38:28 -0700 Subject: [PATCH 10/15] Switching from `get` to use kubectl api-resources --- slides/kube/kubectlget.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/slides/kube/kubectlget.md b/slides/kube/kubectlget.md index f910dfb5..2973ad6b 100644 --- a/slides/kube/kubectlget.md +++ b/slides/kube/kubectlget.md @@ -83,7 +83,7 @@ - `kubectl` has pretty good introspection facilities -- We can list all available resource types by running `kubectl get` +- We can list all available resource types by running `kubectl api-resources` (this used to be `kubectl get`) - We can view details about a resource with: ```bash From 5dd2b6313e4b05efbbebfdc0ef6417443f0091b8 Mon Sep 17 00:00:00 2001 From: Bridget Kromhout Date: Mon, 16 Jul 2018 13:45:26 -0700 Subject: [PATCH 11/15] coredns instead of kube-dns --- slides/kube/kubectlget.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/slides/kube/kubectlget.md b/slides/kube/kubectlget.md index 2973ad6b..8098e788 100644 --- a/slides/kube/kubectlget.md +++ b/slides/kube/kubectlget.md @@ -224,7 +224,7 @@ The `kube-system` namespace is used for the control plane. - `kube-controller-manager` and `kube-scheduler` are other master components -- `kube-dns` is an additional component (not mandatory but super useful, so it's there) +- `coredns` provides DNS-based service discovery ([replacing kube-dns as of 1.11](https://kubernetes.io/blog/2018/07/10/coredns-ga-for-kubernetes-cluster-dns/)) - `kube-proxy` is the (per-node) component managing port mappings and such From 5e6b38e8d1574ea86436bfcb34e394dfab63056a Mon Sep 17 00:00:00 2001 From: Bridget Kromhout Date: Mon, 16 Jul 2018 13:53:27 -0700 Subject: [PATCH 12/15] Replace kube-dns with CoreDNS --- slides/kube/kubectlexpose.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/slides/kube/kubectlexpose.md b/slides/kube/kubectlexpose.md index 850b678c..7da43220 100644 --- a/slides/kube/kubectlexpose.md +++ b/slides/kube/kubectlexpose.md @@ -6,7 +6,7 @@ - If we want to connect to our pod(s), we need to create a *service* -- Once a service is created, `kube-dns` will allow us to resolve it by name +- Once a service is created, CoreDNS will allow us to resolve it by name (i.e. after creating service `hello`, the name `hello` will resolve to something) @@ -46,7 +46,7 @@ Under the hood: `kube-proxy` is using a userland proxy and a bunch of `iptables` - `ExternalName` - - the DNS entry managed by `kube-dns` will just be a `CNAME` to a provided record + - the DNS entry managed by CoreDNS will just be a `CNAME` to a provided record - no port, no IP address, no nothing else is allocated The `LoadBalancer` type is currently only available on AWS, Azure, and GCE. @@ -179,7 +179,7 @@ class: extra-details - Since there is no virtual IP address, there is no load balancer either -- `kube-dns` will return the pods' IP addresses as multiple `A` records +- CoreDNS will return the pods' IP addresses as multiple `A` records - This gives us an easy way to discover all the replicas for a deployment From 4d8c13b0bf5200aeed1f3c8624381e948ddc67bd Mon Sep 17 00:00:00 2001 From: Bridget Kromhout Date: Mon, 16 Jul 2018 15:08:07 -0700 Subject: [PATCH 13/15] AKS name change --- slides/kube/links-bridget.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/slides/kube/links-bridget.md b/slides/kube/links-bridget.md index 1c9601da..f01f2011 100644 --- a/slides/kube/links-bridget.md +++ b/slides/kube/links-bridget.md @@ -6,7 +6,7 @@ - [Play With Kubernetes Hands-On Labs](https://medium.com/@marcosnils/introducing-pwk-play-with-k8s-159fcfeb787b) -- [Azure Container Service](https://docs.microsoft.com/azure/aks/) +- [Azure Kubernetes Service](https://docs.microsoft.com/azure/aks/) - [Cloud Developer Advocates](https://developer.microsoft.com/advocates/) From e45f21454e2ce4b64e5a7a1d6294a40877d719c3 Mon Sep 17 00:00:00 2001 From: Jerome Petazzoni Date: Mon, 16 Jul 2018 18:07:07 -0500 Subject: [PATCH 14/15] Update a couple of references to kube-dns; and cosmetic tweaks --- slides/kube/concepts-k8s.md | 6 +++++- slides/kube/kubectlget.md | 4 +++- slides/kube/namespaces.md | 2 +- slides/kube/whatsnext.md | 2 +- 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/slides/kube/concepts-k8s.md b/slides/kube/concepts-k8s.md index 95a2b7d4..abda0ec2 100644 --- a/slides/kube/concepts-k8s.md +++ b/slides/kube/concepts-k8s.md @@ -239,7 +239,11 @@ Yes! - namespace (more-or-less isolated group of things) - secret (bundle of sensitive data to be passed to a container) - And much more! (We can see the full list by running `kubectl api-resources`) + And much more! + +- We can see the full list by running `kubectl api-resources` + + (Up until Kubernetes 1.10, the command to list API resources was `kubectl get`) --- diff --git a/slides/kube/kubectlget.md b/slides/kube/kubectlget.md index 8098e788..096dac00 100644 --- a/slides/kube/kubectlget.md +++ b/slides/kube/kubectlget.md @@ -83,7 +83,9 @@ - `kubectl` has pretty good introspection facilities -- We can list all available resource types by running `kubectl api-resources` (this used to be `kubectl get`) +- We can list all available resource types by running `kubectl api-resources` +
+ (up to Kubernetes 1.10, this command used to be `kubectl get`) - We can view details about a resource with: ```bash diff --git a/slides/kube/namespaces.md b/slides/kube/namespaces.md index 9993a0d9..87b5b546 100644 --- a/slides/kube/namespaces.md +++ b/slides/kube/namespaces.md @@ -151,7 +151,7 @@ Note: it might take a minute or two for the app to be up and running. - A pod in the `default` namespace can communicate with a pod in the `kube-system` namespace -- `kube-dns` uses a different subdomain for each namespace +- CoreDNS uses a different subdomain for each namespace - Example: from any pod in the cluster, you can connect to the Kubernetes API with: diff --git a/slides/kube/whatsnext.md b/slides/kube/whatsnext.md index 263da980..bbce2681 100644 --- a/slides/kube/whatsnext.md +++ b/slides/kube/whatsnext.md @@ -28,7 +28,7 @@ And *then* it is time to look at orchestration! - Each of the two `redis` services has its own `ClusterIP` -- `kube-dns` creates two entries, mapping to these two `ClusterIP` addresses: +- CoreDNS creates two entries, mapping to these two `ClusterIP` addresses: `redis.blue.svc.cluster.local` and `redis.green.svc.cluster.local` From 76d9adadf5253689d7517b2884f5d4dc216acd6c Mon Sep 17 00:00:00 2001 From: Jerome Petazzoni Date: Mon, 16 Jul 2018 18:25:30 -0500 Subject: [PATCH 15/15] 'until 1.10' is ambiguous, try to be more explicit --- slides/kube/concepts-k8s.md | 2 +- slides/kube/kubectlget.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/slides/kube/concepts-k8s.md b/slides/kube/concepts-k8s.md index abda0ec2..3bf5c4db 100644 --- a/slides/kube/concepts-k8s.md +++ b/slides/kube/concepts-k8s.md @@ -243,7 +243,7 @@ Yes! - We can see the full list by running `kubectl api-resources` - (Up until Kubernetes 1.10, the command to list API resources was `kubectl get`) + (In Kubernetes 1.10 and prior, the command to list API resources was `kubectl get`) --- diff --git a/slides/kube/kubectlget.md b/slides/kube/kubectlget.md index 096dac00..988d85d9 100644 --- a/slides/kube/kubectlget.md +++ b/slides/kube/kubectlget.md @@ -85,7 +85,7 @@ - We can list all available resource types by running `kubectl api-resources`
- (up to Kubernetes 1.10, this command used to be `kubectl get`) + (In Kubernetes 1.10 and prior, this command used to be `kubectl get`) - We can view details about a resource with: ```bash