Merge branch 'master' into pycon2019

This commit is contained in:
Jerome Petazzoni
2019-04-29 15:43:49 -05:00
8 changed files with 50 additions and 28 deletions

View File

@@ -8,7 +8,7 @@ clusterprefix: node
cards_template: jerome.html
# Use "Letter" in the US, and "A4" everywhere else
paper_size: A4
paper_size: Letter
# Feel free to reduce this if your printer can handle it
paper_margin: 0.2in

View File

@@ -165,6 +165,25 @@ What does that mean?
---
## Let's experiment a bit!
- For the exercises in this section, connect to the first node of the `test` cluster
.exercise[
- SSH to the first node of the test cluster
- Check that the cluster is operational:
```bash
kubectl get nodes
```
- All nodes should be `Ready`
]
---
## Create
- Let's create a simple object
@@ -195,7 +214,7 @@ This is equivalent to `kubectl create namespace hello`.
- Read back our object:
```bash
kuectl get namespace hello -o yaml
kubectl get namespace hello -o yaml
```
]
@@ -288,7 +307,7 @@ class: extra-details
- In the other, update our namespace:
```bash
kubectl label namespaces color=purple
kubectl label namespaces hello color=purple
```
]

View File

@@ -18,6 +18,8 @@
.exercise[
- Log into node `test1`
- Check the version of kubectl and of the API server:
```bash
kubectl version

View File

@@ -321,7 +321,7 @@ Note: the DaemonSet won't create any pods (yet) since there are no nodes (yet).
- Copy `kubeconfig` to the other nodes:
```bash
for N in 2 3; do
scp ~/kubeconfig kubenet$N:
scp ~/kubeconfig kuberouter$N:
done
```
@@ -346,8 +346,8 @@ Note: the DaemonSet won't create any pods (yet) since there are no nodes (yet).
- Open more terminals and join the other nodes:
```bash
ssh kubenet2 sudo kubelet --kubeconfig ~/kubeconfig --network-plugin=cni
ssh kubenet3 sudo kubelet --kubeconfig ~/kubeconfig --network-plugin=cni
ssh kuberouter2 sudo kubelet --kubeconfig ~/kubeconfig --network-plugin=cni
ssh kuberouter3 sudo kubelet --kubeconfig ~/kubeconfig --network-plugin=cni
```
]
@@ -650,7 +650,8 @@ For critical services, we might want to precisely control the update process.
- We can see informative messages in the output of kube-router:
```
time="2019-04-07T15:53:56Z" level=info msg="Peer Up" Key=X.X.X.X State=BGP_FSM_OPENCONFIRM Topic=Peer
time="2019-04-07T15:53:56Z" level=info msg="Peer Up"
Key=X.X.X.X State=BGP_FSM_OPENCONFIRM Topic=Peer
```
- We should see the routes of the other clusters show up

View File

@@ -130,6 +130,12 @@ class: pic
---
class: pic
![One of the best Kubernetes architecture diagrams available](images/k8s-arch4-thanks-luxas.png)
---
## Running the control plane on special nodes
- It is common to reserve a dedicated node for the control plane
@@ -199,22 +205,16 @@ class: pic
---
class: pic
![One of the best Kubernetes architecture diagrams available](images/k8s-arch4-thanks-luxas.png)
---
## Credits
- The first diagram is courtesy of Weave Works
- The first diagram is courtesy of Lucas Käldström, in [this presentation](https://speakerdeck.com/luxas/kubeadm-cluster-creation-internals-from-self-hosting-to-upgradability-and-ha)
- it's one of the best Kubernetes architecture diagrams available!
- The second diagram is courtesy of Weave Works
- a *pod* can have multiple containers working together
- IP addresses are associated with *pods*, not with individual containers
- The second diagram is courtesy of Lucas Käldström, in [this presentation](https://speakerdeck.com/luxas/kubeadm-cluster-creation-internals-from-self-hosting-to-upgradability-and-ha)
- it's one of the best Kubernetes architecture diagrams available!
Both diagrams used with permission.

View File

@@ -33,7 +33,7 @@
## Our environment
- We will use the machine indicated as `dmuc`
- We will use the machine indicated as `dmuc1`
(this stands for "Dessine Moi Un Cluster" or "Draw Me A Sheep",
<br/>in homage to Saint-Exupery's "The Little Prince")
@@ -54,7 +54,7 @@
.exercise[
- Log into the `dmuc` machine
- Log into the `dmuc1` machine
- Get root:
```bash
@@ -106,7 +106,7 @@
- Try to start the API server:
```bash
kube-apiserver
# It will fail with --etcd-servers must be specified
# It will fail with "--etcd-servers must be specified"
```
]
@@ -535,7 +535,7 @@ clusters:
- Start kubelet with that `kubeconfig.kubelet` file:
```bash
kubelet --kubeconfig kubelet.kubeconfig
kubelet --kubeconfig kubeconfig.kubelet
```
]
@@ -559,7 +559,7 @@ Success!
Our node should show up.
Its name will be its hostname (it should be `dmuc`).
Its name will be its hostname (it should be `dmuc1`).
---

View File

@@ -16,11 +16,11 @@
- Download the `kubectl` binary from one of these links:
[Linux](https://storage.googleapis.com/kubernetes-release/release/v1.14.0/bin/linux/amd64/kubectl)
[Linux](https://storage.googleapis.com/kubernetes-release/release/v1.14.1/bin/linux/amd64/kubectl)
|
[macOS](https://storage.googleapis.com/kubernetes-release/release/v1.14.0/bin/darwin/amd64/kubectl)
[macOS](https://storage.googleapis.com/kubernetes-release/release/v1.14.1/bin/darwin/amd64/kubectl)
|
[Windows](https://storage.googleapis.com/kubernetes-release/release/v1.14.0/bin/windows/amd64/kubectl.exe)
[Windows](https://storage.googleapis.com/kubernetes-release/release/v1.14.1/bin/windows/amd64/kubectl.exe)
- On Linux and macOS, make the binary executable with `chmod +x kubectl`

View File

@@ -1,7 +1,7 @@
## Versions installed
- Kubernetes 1.14.0
- Docker Engine 18.09.3
- Kubernetes 1.14.1
- Docker Engine 18.09.5
- Docker Compose 1.21.1
<!-- ##VERSION## -->