From 57493488835c89cb310d45613fcfcf9a71d4f3f1 Mon Sep 17 00:00:00 2001 From: Bret Fisher Date: Fri, 8 Nov 2019 00:19:35 -0500 Subject: [PATCH 1/4] remove deprecated rkt, mention runtimes are different per distro --- slides/containers/Container_Engines.md | 16 ---------------- slides/k8s/concepts-k8s.md | 4 ++-- 2 files changed, 2 insertions(+), 18 deletions(-) diff --git a/slides/containers/Container_Engines.md b/slides/containers/Container_Engines.md index 4ab41b96..8da77c6c 100644 --- a/slides/containers/Container_Engines.md +++ b/slides/containers/Container_Engines.md @@ -104,22 +104,6 @@ like Windows, macOS, Solaris, FreeBSD ... --- -## rkt - -* Compares to `runc`. - -* No daemon or API. - -* Strong emphasis on security (through privilege separation). - -* Networking has to be set up separately (e.g. through CNI plugins). - -* Partial image management (pull, but no push). - - (Image build is handled by separate tools.) - ---- - ## CRI-O * Designed to be used with Kubernetes as a simple, basic runtime. diff --git a/slides/k8s/concepts-k8s.md b/slides/k8s/concepts-k8s.md index 0e27a464..5dfc596b 100644 --- a/slides/k8s/concepts-k8s.md +++ b/slides/k8s/concepts-k8s.md @@ -191,12 +191,12 @@ No! - By default, Kubernetes uses the Docker Engine to run containers -- We could also use `rkt` ("Rocket") from CoreOS - - Or leverage other pluggable runtimes through the *Container Runtime Interface* (like CRI-O, or containerd) +- Different install methods and distributions use different runtimes + --- class: extra-details From f7f5ab1304e94e3d08fed5e71089020363a432bc Mon Sep 17 00:00:00 2001 From: Bret Fisher Date: Tue, 12 Nov 2019 06:45:42 -0500 Subject: [PATCH 2/4] deprecated rkt, added more containerd/cri-o info --- slides/k8s/concepts-k8s.md | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/slides/k8s/concepts-k8s.md b/slides/k8s/concepts-k8s.md index 5dfc596b..b4d51f60 100644 --- a/slides/k8s/concepts-k8s.md +++ b/slides/k8s/concepts-k8s.md @@ -193,9 +193,19 @@ No! - Or leverage other pluggable runtimes through the *Container Runtime Interface* - (like CRI-O, or containerd) +- We could also use `rkt` ("Rocket") from CoreOS (deprecated) -- Different install methods and distributions use different runtimes +- [containerd](https://github.com/containerd/containerd/blob/master/README.md): +maintained by Docker, IBM, and community + +- Used by Docker Engine, microK8s, k3s, GKE, and standalone. Has `ctr` CLI + +- [CRI-O](https://github.com/cri-o/cri-o/blob/master/README.md): +maintained by Red Hat, SUSE, and community. Based on containerd + +- Used by OpenShift and Kubic, version matched to Kubernetes + +- [And more](https://kubernetes.io/docs/setup/production-environment/container-runtimes/) --- From 1fae4253bc1cfef5dcabbdbc39b1b0753e815bda Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Petazzoni?= Date: Tue, 12 Nov 2019 06:15:06 -0600 Subject: [PATCH 3/4] Update concepts-k8s.md --- slides/k8s/concepts-k8s.md | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/slides/k8s/concepts-k8s.md b/slides/k8s/concepts-k8s.md index b4d51f60..a8282536 100644 --- a/slides/k8s/concepts-k8s.md +++ b/slides/k8s/concepts-k8s.md @@ -191,19 +191,27 @@ No! - By default, Kubernetes uses the Docker Engine to run containers -- Or leverage other pluggable runtimes through the *Container Runtime Interface* +- We can leverage other pluggable runtimes through the *Container Runtime Interface* - We could also use `rkt` ("Rocket") from CoreOS (deprecated) -- [containerd](https://github.com/containerd/containerd/blob/master/README.md): -maintained by Docker, IBM, and community +--- -- Used by Docker Engine, microK8s, k3s, GKE, and standalone. Has `ctr` CLI +class: extra-details + +## Some runtimes available through CRI + +- [containerd](https://github.com/containerd/containerd/blob/master/README.md) + + - maintained by Docker, IBM, and community + - used by Docker Engine, microk8s, k3s, GKE; also standalone + - comes with its own CLI, `ctr` - [CRI-O](https://github.com/cri-o/cri-o/blob/master/README.md): -maintained by Red Hat, SUSE, and community. Based on containerd -- Used by OpenShift and Kubic, version matched to Kubernetes + - maintained by Red Hat, SUSE, and community + - used by OpenShift and Kubic + - designed specifically as a minimal runtime for Kubernetes - [And more](https://kubernetes.io/docs/setup/production-environment/container-runtimes/) From 3388db4272a99c66370ae5e56bb4fea150de2368 Mon Sep 17 00:00:00 2001 From: Jerome Petazzoni Date: Tue, 12 Nov 2019 14:48:28 -0600 Subject: [PATCH 4/4] Update what we can do with k8s --- slides/k8s/concepts-k8s.md | 32 ++++++++++++++++++++++++-------- 1 file changed, 24 insertions(+), 8 deletions(-) diff --git a/slides/k8s/concepts-k8s.md b/slides/k8s/concepts-k8s.md index 0e27a464..a16c350d 100644 --- a/slides/k8s/concepts-k8s.md +++ b/slides/k8s/concepts-k8s.md @@ -44,21 +44,37 @@ ## Other things that Kubernetes can do for us -- Basic autoscaling +- Autoscaling -- Blue/green deployment, canary deployment + (straightforward on CPU; more complex on other metrics) -- Long running services, but also batch (one-off) jobs +- Ressource management and scheduling -- Overcommit our cluster and *evict* low-priority jobs + (reserve CPU/RAM for containers; placement constraints) -- Run services with *stateful* data (databases etc.) +- Advanced rollout patterns -- Fine-grained access control defining *what* can be done by *whom* on *which* resources + (blue/green deployment, canary deployment) -- Integrating third party services (*service catalog*) +--- -- Automating complex tasks (*operators*) +## More things that Kubernetes can do for us + +- Batch jobs + + (one-off; parallel; also cron-style periodic execution) + +- Fine-grained access control + + (defining *what* can be done by *whom* on *which* resources) + +- Stateful services + + (databases, message queues, etc.) + +- Automating complex tasks with *operators* + + (e.g. database replication, failover, etc.) ---