Compare commits

...

12 Commits

Author SHA1 Message Date
Jerome Petazzoni
91ba273488 fix-redirects.sh: adding forced redirect 2020-04-07 16:56:49 -05:00
Jerome Petazzoni
2aba4eb6c4 Add survey link 2019-05-01 07:50:41 -05:00
Jerome Petazzoni
2dc4b333a9 Use set -u as well 2019-04-29 18:44:39 -05:00
Jerome Petazzoni
bacfba01b0 Merge branch 'improve-core-apr-2019' into pycon2019 2019-04-29 18:44:02 -05:00
Jerome Petazzoni
a384cc0602 Merge branch 'improve-core-apr-2019' into pycon2019 2019-04-29 18:33:13 -05:00
Jerome Petazzoni
9697412346 Merge branch 'improve-core-apr-2019' into pycon2019 2019-04-29 18:30:20 -05:00
Jerome Petazzoni
1d31573b38 merge 2019-04-29 15:46:16 -05:00
Jerome Petazzoni
6be1b1c2d7 Merge branch 'master' into pycon2019 2019-04-29 15:43:49 -05:00
Jerome Petazzoni
9ab4292a8a Merge branch 'jpetazzo-last-slide' into pycon2019 2019-04-22 12:04:36 -05:00
Jerome Petazzoni
a3ef8efaf5 Customizations for PyCon 2019 2019-04-22 12:04:33 -05:00
Jerome Petazzoni
4c5da9ed0d Update links to TSS material 2019-04-22 07:42:47 -05:00
Jerome Petazzoni
6b9b83a7ae Add link to my private training intake form 2018-10-31 22:50:41 -05:00
7 changed files with 45 additions and 164 deletions

View File

@@ -1,4 +1,4 @@
# Uncomment and/or edit one of the the following lines if necessary.
#/ /kube-halfday.yml.html 200
#/ /kube-fullday.yml.html 200
/ /kube-fullday.yml.html 200!
#/ /kube-twodays.yml.html 200

View File

@@ -62,29 +62,6 @@
---
## Building a new version of the `worker` service
.exercise[
- Go to the `stack` directory:
```bash
cd ~/container.training/stacks
```
- Edit `dockercoins/worker/worker.py`; update the first `sleep` line to sleep 1 second
- Build a new tag and push it to the registry:
```bash
#export REGISTRY=localhost:3xxxx
export TAG=v0.2
docker-compose -f dockercoins.yml build
docker-compose -f dockercoins.yml push
```
]
---
## Rolling out the new `worker` service
.exercise[
@@ -103,6 +80,8 @@
- Update `worker` either with `kubectl edit`, or by running:
```bash
set -u
export TAG=v0.2
kubectl set image deploy worker worker=$REGISTRY/worker:$TAG
```
@@ -144,6 +123,7 @@ That rollout should be pretty quick. What shows in the web UI?
- Update `worker` by specifying a non-existent image:
```bash
set -u
export TAG=v0.3
kubectl set image deploy worker worker=$REGISTRY/worker:$TAG
```
@@ -208,35 +188,6 @@ class: extra-details
---
## Checking the dashboard during the bad rollout
If you haven't deployed the Kubernetes dashboard earlier, just skip this slide.
.exercise[
- Check which port the dashboard is on:
```bash
kubectl -n kube-system get svc socat
```
]
Note the `3xxxx` port.
.exercise[
- Connect to http://oneofournodes:3xxxx/
<!-- ```open https://node1:3xxxx/``` -->
]
--
- We have failures in Deployments, Pods, and Replica Sets
---
## Recovering from a bad rollout
- We could push some `v0.3` image

View File

@@ -223,44 +223,6 @@ And *then* it is time to look at orchestration!
---
## Cluster federation
--
![Star Trek Federation](images/startrek-federation.jpg)
--
Sorry Star Trek fans, this is not the federation you're looking for!
--
(If I add "Your cluster is in another federation" I might get a 3rd fandom wincing!)
---
## Cluster federation
- Kubernetes master operation relies on etcd
- etcd uses the [Raft](https://raft.github.io/) protocol
- Raft recommends low latency between nodes
- What if our cluster spreads to multiple regions?
--
- Break it down in local clusters
- Regroup them in a *cluster federation*
- Synchronize resources across clusters
- Discover resources across clusters
---
## Developer experience
*We've put this last, but it's pretty important!*

View File

@@ -1,14 +1,15 @@
title: |
Deploying and Scaling Microservices
with Kubernetes
Getting started with
Kubernetes and
container orchestration
#chat: "[Slack](https://dockercommunity.slack.com/messages/C7GKACWDV)"
#chat: "[Gitter](https://gitter.im/jpetazzo/workshop-yyyymmdd-city)"
chat: "In person!"
chat: "[Gitter](https://gitter.im/jpetazzo/workshop-20190501)"
#chat: "In person!"
gitrepo: github.com/jpetazzo/container.training
slides: http://container.training/
slides: http://pycon2019.container.training/
exclude:
- self-paced
@@ -20,7 +21,7 @@ chapters:
- shared/about-slides.md
- shared/toc.md
- - shared/prereqs.md
- k8s/versions-k8s.md
# - k8s/versions-k8s.md
- shared/sampleapp.md
# - shared/composescale.md
# - shared/hastyconclusions.md
@@ -28,34 +29,34 @@ chapters:
- k8s/concepts-k8s.md
- shared/declarative.md
- k8s/declarative.md
- - k8s/kubenet.md
- k8s/kubenet.md
- k8s/kubectlget.md
- k8s/setup-k8s.md
# - k8s/setup-k8s.md
- k8s/kubectlrun.md
- k8s/kubectlexpose.md
- - k8s/shippingimages.md
- - k8s/kubectlexpose.md
- k8s/shippingimages.md
# - k8s/buildshiprun-selfhosted.md
- k8s/buildshiprun-dockerhub.md
- k8s/ourapponkube.md
# - k8s/kubectlproxy.md
# - k8s/localkubeconfig.md
# - k8s/accessinternal.md
- k8s/dashboard.md
# - k8s/dashboard.md
# - k8s/kubectlscale.md
- k8s/scalingdockercoins.md
- shared/hastyconclusions.md
- k8s/daemonset.md
- - k8s/rollout.md
- k8s/rollout.md
# - k8s/healthchecks.md
- k8s/logs-cli.md
- k8s/logs-centralized.md
# - k8s/logs-cli.md
# - k8s/logs-centralized.md
#- - k8s/helm.md
# - k8s/namespaces.md
# - k8s/netpol.md
# - k8s/authn-authz.md
#- - k8s/ingress.md
# - k8s/gitworkflows.md
- k8s/prometheus.md
# - k8s/prometheus.md
#- - k8s/volumes.md
# - k8s/build-with-docker.md
# - k8s/build-with-kaniko.md

View File

@@ -1,32 +1,14 @@
## Intros
- This slide should be customized by the tutorial instructor(s).
- Hello! We are:
- .emoji[👩🏻‍🏫] Ann O'Nymous ([@...](https://twitter.com/...), Megacorp Inc)
- .emoji[👨🏾‍🎓] Stu Dent ([@...](https://twitter.com/...), University of Wakanda)
<!-- .dummy[
- .emoji[👷🏻‍♀️] AJ ([@s0ulshake](https://twitter.com/s0ulshake), Travis CI)
- .emoji[🚁] Alexandre ([@alexbuisine](https://twitter.com/alexbuisine), Enix SAS)
- .emoji[🐳] Jérôme ([@jpetazzo](https://twitter.com/jpetazzo), Enix SAS)
- .emoji[⛵] Jérémy ([@jeremygarrouste](twitter.com/jeremygarrouste), Inpiwee)
- The workshop will run from 9:00am to 12:20pm
- .emoji[🎧] Romain ([@rdegez](https://twitter.com/rdegez), Enix SAS)
] -->
- The workshop will run from ...
- There will be a lunch break at ...
(And coffee breaks!)
- There will be a short coffee break at 10:30am
- Feel free to interrupt for questions at any time

View File

@@ -165,26 +165,6 @@ https://@@GITREPO@@/blob/8279a3bce9398f7c1a53bdd95187c53eda4e6435/dockercoins/wo
---
class: extra-details
## Links, naming, and service discovery
- Containers can have network aliases (resolvable through DNS)
- Compose file version 2+ makes each container reachable through its service name
- Compose file version 1 did require "links" sections
- Network aliases are automatically namespaced
- you can have multiple apps declaring and using a service named `database`
- containers in the blue app will resolve `database` to the IP of the blue database
- containers in the green app will resolve `database` to the IP of the green database
---
## Show me the code!
- You can check the GitHub repository with all the materials of this workshop:
@@ -210,24 +190,6 @@ class: extra-details
---
class: extra-details
## Compose file format version
*This is relevant only if you have used Compose before 2016...*
- Compose 1.6 introduced support for a new Compose file format (aka "v2")
- Services are no longer at the top level, but under a `services` section
- There has to be a `version` key at the top level, with value `"2"` (as a string, not an integer)
- Containers are placed on a dedicated network, making links unnecessary
- There are other minor differences, but upgrade is easy and straightforward
---
## Our application at work
- On the left-hand side, the "rainbow strip" shows the container names

View File

@@ -9,3 +9,26 @@ class: title, in-person
That's all, folks! <br/> Questions?
![end](images/end.jpg)
---
## Final words
- Please **rate this workshop**:
https://www.surveymonkey.com/r/SDFL3PS
- You can find more content on http://container.training/
(More slides, videos, dates of upcoming workshops and tutorials...)
- This workshop is also available as longer training sessions:
- [two-day Kubernetes bootstrap](https://tinyshellscript.com/kubernetes-bootstrap.html)
- [four-day Kubernetes administrator training](https://tinyshellscript.com/kubernetes-ops-week.html)
- If you want me to train your team:
[contact me!](https://docs.google.com/forms/d/e/1FAIpQLScm2evHMvRU8C5ZK59l8FGsLY_Kkup9P_GHgjfByUMyMpMmDA/viewform)
.footnote[*Thank you!*]