From a895e27ed5d889acb018b2d85e27b53759443e8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lucas=20K=C3=A4ldstr=C3=B6m?= Date: Mon, 15 Jul 2019 19:22:34 +0300 Subject: [PATCH] Fix doc issues uncovered in Joe's TGIK session, and link the recording --- README.md | 5 +++++ docs/dependencies.md | 24 ++++++++++++++++++++---- docs/installation.md | 20 ++++++++++++++++++++ docs/usage.md | 4 ++++ images/kubeadm/Dockerfile | 3 +++ images/kubeadm/README.md | 12 ++++++++++++ 6 files changed, 64 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 53defe980..7537267d9 100644 --- a/README.md +++ b/README.md @@ -154,6 +154,11 @@ Please refer to the following documents: ![docs/architecture.png](docs/architecture.png) +Want to know how Ignite really works under the hood? +Check out this [TGIK](https://github.com/heptio/tgik) session from [Joe Beda](https://twitter.com/jbeda) about it: + +[[![TGIK 082](https://img.youtube.com/vi/aq-wlslJ5MQ/0.jpg)]](https://youtu.be/aq-wlslJ5MQ) + ### Base images and kernels A _base image_ is an OCI-compliant image containing some operating system (e.g. Ubuntu). diff --git a/docs/dependencies.md b/docs/dependencies.md index d518ae918..475c4c8ec 100644 --- a/docs/dependencies.md +++ b/docs/dependencies.md @@ -33,10 +33,26 @@ Ignite shells out to a few dependencies on the host. With time, we aim to eliminate as many of these as possible. - `mount` & `umount` for mounting and unmounting block devices + - Ubuntu package: `mount` (installed by default) + - CentOS package: `util-linux` (installed by default) + - `tar` for extracting files from the docker image onto the filesystem + - Ubuntu package: `tar` (installed by default) + - CentOS package: `tar` (installed by default) - `mkfs.ext4` for formatting a block device with a ext4 filesystem - - `docker` for managing the containers ignite uses + - Ubuntu package: `e2fsprogs` (installed by default) + - CentOS package: `e2fsprogs` - `e2fsck` & `resize2fs` for cleaning and resizing the ext4 filesystems + - Ubuntu package: `e2fsprogs` (installed by default) + - CentOS package: `e2fsprogs` + - `docker` for managing the containers ignite uses + - Ubuntu package: `docker.io` + - CentOS package: `docker` - `dmsetup` for managing devicemapper snapshots and overlays - - `tar` for extracting files from the docker image onto the filesystem - - `ssh` for SSH-ing into the VM - - `git` for the GitOps mode of Ignite (`ignite gitops`) + - Ubuntu package: `dmsetup` + - CentOS package: `device-mapper` (installed by default) + - `ssh` for SSH-ing into the VM (optional, for `ignite ssh` only) + - Ubuntu package: `openssh-client` + - CentOS package: `openssh-clients` + - `git` for the GitOps mode of Ignite (optional, for `ignite gitops` only) + - Ubuntu package: `git` + - CentOS package: `git` diff --git a/docs/installation.md b/docs/installation.md index f2d13b12c..9a4bcd665 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -39,6 +39,26 @@ KVM acceleration can be used With this kind of output, you're ready to go! +## Installing dependencies + +Ignite has a few dependencies (read more in this [doc](dependencies.md)). +Install them on Ubuntu/CentOS like this: + +Ubuntu: + +``` +apt-get update && apt-get install -y docker.io dmsetup openssh-client git +``` + +CentOS: + +``` +yum install -y docker e2fsprogs openssh-clients git +``` + +Note that the SSH and Git packages are optional; they are only needed if you use +the `ignite ssh` and/or `ignite gitops` commands. + ## Downloading the binary Ignite is a currently a single binary application. To install it, diff --git a/docs/usage.md b/docs/usage.md index 929179891..543ee5f92 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -26,6 +26,10 @@ Here's a [demo](https://www.youtube.com/watch?v=s_O75zt-oBg) that shows the topi [![ignite running on Amazon EC2 i3.metal instance](http://img.youtube.com/vi/s_O75zt-oBg/0.jpg)](http://www.youtube.com/watch?v=s_O75zt-oBg "ignite running on Amazon EC2 i3.metal instance") +Alternatively, you might want to check out the [TGIK](https://github.com/heptio/tgik) deep-dive session from [Joe Beda](https://twitter.com/jbeda) on what Ignite is and how it works: + +[[![TGIK 082](https://img.youtube.com/vi/aq-wlslJ5MQ/0.jpg)]](https://youtu.be/aq-wlslJ5MQ) + ### Importing a VM base image A VM base image (or just `image`) is an OCI container, which contains a filesystem diff --git a/images/kubeadm/Dockerfile b/images/kubeadm/Dockerfile index 3eab8a79e..f23e85e46 100644 --- a/images/kubeadm/Dockerfile +++ b/images/kubeadm/Dockerfile @@ -12,3 +12,6 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ ENV KUBERNETES_VERSION=v1.15.0 COPY install.sh / RUN /install.sh install release/stable-1.15 ${KUBERNETES_VERSION} +# Docker sets this automatically, but not containerd. +# It is required when running kubeadm. +RUN echo "net.ipv4.ip_forward=1" > /etc/sysctl.conf diff --git a/images/kubeadm/README.md b/images/kubeadm/README.md index 0c205fb92..de4f5587d 100644 --- a/images/kubeadm/README.md +++ b/images/kubeadm/README.md @@ -78,6 +78,18 @@ export KUBECONFIG=$(pwd)/run/admin.conf kubectl get nodes ``` +Right now it's expected that the nodes are in state `NotReady`, as CNI networking isn't set up. + +#### Install a CNI Network -- Weave Net + +We're gonna use [Weave Net](https://github.com/weaveworks/weave). + +```bash +kubectl apply -f https://git.io/weave-kube-1.6 +``` + +With this, the nodes should transition into the `Ready` state in a minute or so. + ### Watch the cluster heal Kill the bootstrap master and see the cluster recover: