202 lines
8.0 KiB
HTML
202 lines
8.0 KiB
HTML
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
|
|
|
|
<title>OpenStack Networking at OVH</title>
|
|
|
|
<link rel="stylesheet" href="dist/reset.css">
|
|
<link rel="stylesheet" href="dist/reveal.css">
|
|
<link rel="stylesheet" href="dist/theme/black.css">
|
|
|
|
<!-- Theme used for syntax highlighted code -->
|
|
<link rel="stylesheet" href="plugin/highlight/monokai.css">
|
|
</head>
|
|
<body>
|
|
<div class="reveal">
|
|
<div class="slides">
|
|
<section data-markdown data-background="data/slide.png">
|
|
## OpenStack-ception
|
|
#### Unleash the Power of OpenStack
|
|

|
|
#### Arnaud Morin
|
|
</section>
|
|
|
|
<section data-markdown>### Who am I?</section>
|
|
|
|
<section>
|
|
<h3>What are we going to talk about?</h3>
|
|
<p class="fragment">1 - A little bit of context</p>
|
|
<p class="fragment">2 - OpenStack-ception</p>
|
|
<p class="fragment">3 - A demo</p>
|
|
</section>
|
|
|
|
<section data-markdown data-background="data/lalinea2.gif">
|
|
# Context
|
|
</section>
|
|
|
|
<section>
|
|
<h2>OVHcloud</h2>
|
|
<ul>
|
|
<li class="fragment">Created by Octave Klaba in 1999</li>
|
|
<li class="fragment">Baremetal servers</li>
|
|
</ul>
|
|
</section>
|
|
|
|
<section data-markdown data-background="data/servers3.jpg">
|
|
</section>
|
|
|
|
<section data-markdown data-background="data/servers2.jpg">
|
|
</section>
|
|
|
|
<section data-markdown data-background="data/servers.jpg">
|
|
</section>
|
|
|
|
<section>
|
|
<h2>OpenStack</h2>
|
|
<ul>
|
|
<li class="fragment">Started in 2012 (swift)</li>
|
|
<li class="fragment">First ping in 2014/2015 (juno)</li>
|
|
<li class="fragment">First regions are still there! (caracal now)</li>
|
|
</ul>
|
|
</section>
|
|
|
|
<section>
|
|
<h2>Figures</h2>
|
|
<ul>
|
|
<li class="fragment">40+ production regions</li>
|
|
<li class="fragment">30k hypervisors</li>
|
|
<li class="fragment">Biggest region is almost 3k computes</li>
|
|
<li class="fragment">500k instances</li>
|
|
</ul>
|
|
</section>
|
|
|
|
<section data-markdown data-background="data/rabbitshit.gif">
|
|
#### it's not only you...
|
|
</section>
|
|
|
|
<section data-markdown data-background="data/cats.gif">
|
|
#### ... but not today
|
|
</section>
|
|
|
|
<section data-markdown data-background="data/lalinea.gif">
|
|
# OpenStack-ception
|
|
</section>
|
|
|
|
<section>
|
|
<h2>A bug?</h2>
|
|
<ul>
|
|
<li class="fragment">I found a bug in my downstream code</li>
|
|
<li class="fragment">Is upstream affected?</li>
|
|
</ul>
|
|
</section>
|
|
|
|
<section>
|
|
<h2>first idea: devstack</h2>
|
|
<ul>
|
|
<li class="fragment">DevStack<span class="fragment" style="color:red">, but</span></li>
|
|
<li class="fragment">... not very aligned with real-world</li>
|
|
<li class="fragment">... all in one</li>
|
|
<li class="fragment">... take time to configure</li>
|
|
<li class="fragment">... rely on master branch</li>
|
|
</ul>
|
|
</section>
|
|
|
|
<section>
|
|
<h2>second idea: bootstrap-openstack</h2>
|
|
<ul>
|
|
<li class="fragment">Start OpenStack on top of our OVH OpenStack</li>
|
|
<li class="fragment">... it is quick (5m)</li>
|
|
<li class="fragment">... multi node by default</li>
|
|
<li class="fragment">... easy to read, easy to tune</li>
|
|
<li class="fragment">... rely on stable branches</li>
|
|
</ul>
|
|
</section>
|
|
|
|
<section>
|
|
<h2>How it works</h2>
|
|
<ul>
|
|
<li class="fragment">OpenTofu starts 5 instances
|
|
<ul>
|
|
<li class="fragment">1 controler (named k8s)</li>
|
|
<li class="fragment">2 compute nodes</li>
|
|
<li class="fragment">2 network nodes</li>
|
|
</ul>
|
|
</li>
|
|
<li class="fragment">... use cloud-init for setup</li>
|
|
<li class="fragment">... rely on pre-compiled packages (.deb and docker)</li>
|
|
<li class="fragment">... pre-create image, flavors, etc.</li>
|
|
<li class="fragment">... can use real public IPs</li>
|
|
</ul>
|
|
</section>
|
|
|
|
<section data-markdown data-background="data/fire.gif">
|
|
# HELM is HELL
|
|
</section>
|
|
|
|
<section data-markdown data-background="data/fire.gif">
|
|
# HELL is HELM
|
|
</section>
|
|
|
|
<section>
|
|
<h2>Behind the scene</h2>
|
|
<ul>
|
|
<li class="fragment">Controller</li>
|
|
<ul>
|
|
<li class="fragment">Pure k8s yaml files</li>
|
|
<li class="fragment">Templating is done using `frep`</li>
|
|
</ul>
|
|
<li class="fragment">Computes and networks</li>
|
|
<ul>
|
|
<li class="fragment">ansible playbook</li>
|
|
</ul>
|
|
</ul>
|
|
</section>
|
|
|
|
<section data-markdown>
|
|
#### Controller
|
|

|
|
</section>
|
|
<section data-markdown>
|
|
#### Compute (and network)
|
|

|
|
</section>
|
|
|
|
<section data-markdown data-background="data/lalinea3.gif">
|
|
# Demo
|
|
</section>
|
|
|
|
|
|
<section data-markdown data-background="data/lalinea4.gif">
|
|
## it fit my needs
|
|
#### but maybe not yours
|
|
</section>
|
|
|
|
<section data-background="data/camion_plot.gif" data-background-opacity=0.5>
|
|
<h1>Questions?</h1>
|
|
<h4>https://github.com/arnaudmorin/bootstrap-openstack-k8s</h4>
|
|
</section>
|
|
</div>
|
|
</div>
|
|
|
|
<script src="dist/reveal.js"></script>
|
|
<script src="plugin/notes/notes.js"></script>
|
|
<script src="plugin/markdown/markdown.js"></script>
|
|
<script src="plugin/highlight/highlight.js"></script>
|
|
<script>
|
|
// More info about initialization & config:
|
|
// - https://revealjs.com/initialization/
|
|
// - https://revealjs.com/config/
|
|
Reveal.initialize({
|
|
hash: true,
|
|
transition: 'fade',
|
|
backgroundTransition: 'fade',
|
|
|
|
// Learn about plugins: https://revealjs.com/plugins/
|
|
plugins: [ RevealMarkdown, RevealHighlight, RevealNotes ]
|
|
});
|
|
</script>
|
|
</body>
|
|
</html>
|