This document provides instructions for deploying Docker and Kubernetes on an Ubuntu server. It includes steps to install Docker, initialize a Kubernetes cluster with kubeadm, join additional nodes, and deploy the Kubernetes Dashboard for management and monitoring.
Slides from a talk at HPC Admintech 2019 about containers, a brief review on containers, how to create a container using common linux tools and how to integrate Docker with Slurm.
Building a DSL with GraalVM (VoxxedDays Luxembourg)Maarten Mulders
GraalVM is a virtual machine that can run many languages on top of the Java Virtual Machine. It comes with support for JavaScript, Ruby, Python… But what if you're building a DSL, or your language is not listed? Fear not!
In this session we'll discover what it takes to run another language in GraalVM. Using GraalVM, we don't only get a fast runtime, but we'll also get great tool support. With Brainfuck as an example, we'll see how we can run guest languages inside Java applications. It might not bring us profit, but at least it will bring some fun.
Jokingly casual introduction that scales quickly to the obscure powers of bash script.
Intended to call the attention of devs and ops, and bridge the perception of the complexity on each other sides with things too familiar and yet too far out for both.
A reminder of the capacity we have in our hands if we dare to use it.
It is in portuguese, but the language that counts here is bash script.
Slides from a talk at HPC Admintech 2019 about containers, a brief review on containers, how to create a container using common linux tools and how to integrate Docker with Slurm.
Building a DSL with GraalVM (VoxxedDays Luxembourg)Maarten Mulders
GraalVM is a virtual machine that can run many languages on top of the Java Virtual Machine. It comes with support for JavaScript, Ruby, Python… But what if you're building a DSL, or your language is not listed? Fear not!
In this session we'll discover what it takes to run another language in GraalVM. Using GraalVM, we don't only get a fast runtime, but we'll also get great tool support. With Brainfuck as an example, we'll see how we can run guest languages inside Java applications. It might not bring us profit, but at least it will bring some fun.
Jokingly casual introduction that scales quickly to the obscure powers of bash script.
Intended to call the attention of devs and ops, and bridge the perception of the complexity on each other sides with things too familiar and yet too far out for both.
A reminder of the capacity we have in our hands if we dare to use it.
It is in portuguese, but the language that counts here is bash script.
Les tests unitaires se sont pas limités au code des applications, des tests peuvent également être effectués sur les données et les schémas des bases de données.
Conférence donnée lors du meetup PostgreSQL le 22 juin 2016 à Nantes
GraalVM is a virtual machine that can run many languages on top of the Java Virtual Machine. It comes with support for JavaScript, Ruby, Python… But what if you're building a DSL, or your language is not listed? Fear not!
In this session we'll discover what it takes to run another language in GraalVM. Using GraalVM, we don't only get a fast runtime, but we'll also get great tool support. With Brainfuck as an example, we'll see how we can run guest languages inside Java applications. It might not bring us profit, but at least it will bring some fun.
Goal of this talk is to get through performance analysis process of simple calculator application implemented as a set of microservices with following FOSS toolset: k6 and gatling for traffic generation, prometheus for monitoring, perf Linux profiler and FlameGraph project for flame graphs generation.
Docker Practice for beginner.
- docker install on ubuntu 18.04 LTS
- docker pull/push
- making docker-compose file which serving spring-boot+ mySql application
Include technologies covered - Node.js | ORDS | Spatial
Have you ever wanted to track the location of a physical object and trigger an action based on the proximity of that object? The problem is, how to do this without spending a small fortune?
In this session, Blaine walks through using Raspberry Pi to track a small Bluetooth LE beacon. After a short explanation of BLE beacons, he talks about configuring the Pi and adding the software.
Beacon tracking generates lots of data for analysis which needs a home, ie, a database. Using REST APIs, Blaine safely stores the data in a cloud database and demonstrates using spatial queries to find the location of the beacon.
Attendees will come away from this session with the tools to build their own beacon scanning system that won't break the bank.
kubernetes install and practice
* Environment (bare metal installation, not using cloud service)
- VM 1 : Mater node, 30GB, 2 vCPU, 4GB Mem
- VM 2 : Worker node, 30GB, 2 vCPU, 4GB Mem
* Practice
- deploying pod, make a deployment and service
- expose service using ingress(nginx-ingress)
Les tests unitaires se sont pas limités au code des applications, des tests peuvent également être effectués sur les données et les schémas des bases de données.
Conférence donnée lors du meetup PostgreSQL le 22 juin 2016 à Nantes
GraalVM is a virtual machine that can run many languages on top of the Java Virtual Machine. It comes with support for JavaScript, Ruby, Python… But what if you're building a DSL, or your language is not listed? Fear not!
In this session we'll discover what it takes to run another language in GraalVM. Using GraalVM, we don't only get a fast runtime, but we'll also get great tool support. With Brainfuck as an example, we'll see how we can run guest languages inside Java applications. It might not bring us profit, but at least it will bring some fun.
Goal of this talk is to get through performance analysis process of simple calculator application implemented as a set of microservices with following FOSS toolset: k6 and gatling for traffic generation, prometheus for monitoring, perf Linux profiler and FlameGraph project for flame graphs generation.
Docker Practice for beginner.
- docker install on ubuntu 18.04 LTS
- docker pull/push
- making docker-compose file which serving spring-boot+ mySql application
Include technologies covered - Node.js | ORDS | Spatial
Have you ever wanted to track the location of a physical object and trigger an action based on the proximity of that object? The problem is, how to do this without spending a small fortune?
In this session, Blaine walks through using Raspberry Pi to track a small Bluetooth LE beacon. After a short explanation of BLE beacons, he talks about configuring the Pi and adding the software.
Beacon tracking generates lots of data for analysis which needs a home, ie, a database. Using REST APIs, Blaine safely stores the data in a cloud database and demonstrates using spatial queries to find the location of the beacon.
Attendees will come away from this session with the tools to build their own beacon scanning system that won't break the bank.
kubernetes install and practice
* Environment (bare metal installation, not using cloud service)
- VM 1 : Mater node, 30GB, 2 vCPU, 4GB Mem
- VM 2 : Worker node, 30GB, 2 vCPU, 4GB Mem
* Practice
- deploying pod, make a deployment and service
- expose service using ingress(nginx-ingress)
AtlasCamp 2015 Docker continuous integration trainingSteve Smith
A 2-hour training session delivered at AtlasCamp in Prague, June 9th 2015.
* Docker vs virtual machines
* Docker concepts
* Docker for testing
* Automation with Docker Compose
* Continuous integration with Bamboo Docker support
* Extracting test results from Docker containers
* Continuous deployment with deployment environments
If you just stated with Kubernetes, one of the first thing you have to learn is the `kubectl` CLI. Join me at a live hacking journey trough the world of kubectl and how you can improve your daily work to be more productive. Find out the handy day-by-day time savers for your working routine by a pure hands-on talk without slides. In Detail we will look together into:
* kubectl basics
* kubectl for scripting
* kubectl extensions
* the fuzzy side of kubectl
* KubeOps - use kubectl to manage k8s clusters, workers and static virtual machines.
Kernel Recipes 2017 - Performance analysis Superpowers with Linux BPF - Brend...Anne Nicolas
The in-kernel Berkeley Packet Filter (BPF) has been enhanced in recent kernels to do much more than just filtering packets. It can now run user-defined programs on events, such as on tracepoints, kprobes, uprobes, and perf_events, allowing advanced performance analysis tools to be created. These can be used in production as the BPF virtual machine is sandboxed and will reject unsafe code, and are already in use at Netflix.
Beginning with the bpf() syscall in 3.18, enhancements have been added in many kernel versions since, with major features for BPF analysis landing in Linux 4.1, 4.4, 4.7, and 4.9. Specific capabilities these provide include custom in-kernel summaries of metrics, custom latency measurements, and frequency counting kernel and user stack traces on events. One interesting case involves saving stack traces on wake up events, and associating them with the blocked stack trace: so that we can see the blocking stack trace and the waker together, merged in kernel by a BPF program (that particular example is in the kernel as samples/bpf/offwaketime).
This talk will discuss the new BPF capabilities for performance analysis and debugging, and demonstrate the new open source tools that have been developed to use it, many of which are in the Linux Foundation iovisor bcc (BPF Compiler Collection) project. These include tools to analyze the CPU scheduler, TCP performance, file system performance, block I/O, and more.
Brendan Gregg, Netflix
Kernel Recipes 2017: Performance Analysis with BPFBrendan Gregg
Talk by Brendan Gregg at Kernel Recipes 2017 (Paris): "The in-kernel Berkeley Packet Filter (BPF) has been enhanced in recent kernels to do much more than just filtering packets. It can now run user-defined programs on events, such as on tracepoints, kprobes, uprobes, and perf_events, allowing advanced performance analysis tools to be created. These can be used in production as the BPF virtual machine is sandboxed and will reject unsafe code, and are already in use at Netflix.
Beginning with the bpf() syscall in 3.18, enhancements have been added in many kernel versions since, with major features for BPF analysis landing in Linux 4.1, 4.4, 4.7, and 4.9. Specific capabilities these provide include custom in-kernel summaries of metrics, custom latency measurements, and frequency counting kernel and user stack traces on events. One interesting case involves saving stack traces on wake up events, and associating them with the blocked stack trace: so that we can see the blocking stack trace and the waker together, merged in kernel by a BPF program (that particular example is in the kernel as samples/bpf/offwaketime).
This talk will discuss the new BPF capabilities for performance analysis and debugging, and demonstrate the new open source tools that have been developed to use it, many of which are in the Linux Foundation iovisor bcc (BPF Compiler Collection) project. These include tools to analyze the CPU scheduler, TCP performance, file system performance, block I/O, and more."
Explains how Docker and Nix work as deployment solutions, in what ways they are similar and different, and how they can be combined to achieve interesting results.
Meet up Milano 14 _ Axpo Italia_ Migration from Mule3 (On-prem) to.pdfFlorence Consulting
Quattordicesimo Meetup di Milano, tenutosi a Milano il 23 Maggio 2024 dalle ore 17:00 alle ore 18:30 in presenza e da remoto.
Abbiamo parlato di come Axpo Italia S.p.A. ha ridotto il technical debt migrando le proprie APIs da Mule 3.9 a Mule 4.4 passando anche da on-premises a CloudHub 1.0.
Instagram has become one of the most popular social media platforms, allowing people to share photos, videos, and stories with their followers. Sometimes, though, you might want to view someone's story without them knowing.
Gen Z and the marketplaces - let's translate their needsLaura Szabó
The product workshop focused on exploring the requirements of Generation Z in relation to marketplace dynamics. We delved into their specific needs, examined the specifics in their shopping preferences, and analyzed their preferred methods for accessing information and making purchases within a marketplace. Through the study of real-life cases , we tried to gain valuable insights into enhancing the marketplace experience for Generation Z.
The workshop was held on the DMA Conference in Vienna June 2024.
APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024APNIC
Ellisha Heppner, Grant Management Lead, presented an update on APNIC Foundation to the PNG DNS Forum held from 6 to 10 May, 2024 in Port Moresby, Papua New Guinea.
14. $ kubeadm version
…
Usage:
kubeadm [command]
Available Commands:
alpha Experimental sub-commands not yet fully functional.
completion Output shell completion code for the specified shell (bash or zsh).
config Manage configuration for a kubeadm cluster persisted in a ConfigMap in the cluster.
help Help about any command
init Run this command in order to set up the Kubernetes master.
join Run this on any machine you wish to join an existing cluster
reset Run this to revert any changes made to this host by 'kubeadm init' or 'kubeadm join'.
token Manage bootstrap tokens.
…
15. $ kubeadm init
…
You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
https://kubernetes.io/docs/concepts/cluster-administration/addons/
You can now join any number of machines by running the following on each node
as root:
kubeadm join 192.168.1.13:6443 --token 6lkv4n.uob08598143vuqdg --discovery-token-ca-cert-hash
sha256:b031704cd27c0911d6a5723c9d186da3d43bd772bc7d6f5efab95e463894f963…
…
19. $ kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-
version=$(kubectl version | base64 | tr -d 'n')"
serviceaccount/weave-net created
clusterrole.rbac.authorization.k8s.io/weave-net created
clusterrolebinding.rbac.authorization.k8s.io/weave-net created
role.rbac.authorization.k8s.io/weave-net created
rolebinding.rbac.authorization.k8s.io/weave-net created
daemonset.extensions/weave-net created
20. $ kubectl get nodes
NAME STATUS ROLES AGE VERSION
k8s-1 Ready master 56m v1.11.0
21. $ kubeadm join 192.168.1.13:6443 --token 6lkv4n.uob08598143vuqdg --
discovery-token-ca-cert-hash
sha256:b031704cd27c0911d6a5723c9d186da3d43bd772bc7d6f5efab95e
463894f963
…
This node has joined the cluster:
* Certificate signing request was sent to master and a response
was received.
* The Kubelet was informed of the new secure connection details.
Run 'kubectl get nodes' on the master to see this node join the cluster.
22. $ kubectl get nodes
NAME STATUS ROLES AGE VERSION
k8s-1 Ready master 7m v1.11.0
k8s-2 Ready <none> 3m v1.11.0
24. $ kubectl get nodes
NAME STATUS ROLES AGE VERSION
k8s-1 Ready master 22m v1.11.0
k8s-2 Ready <none> 18m v1.11.0
k8s-3 Ready <none> 2m v1.11.0
25. $ kubectl apply -f
https://raw.githubusercontent.com/kubernetes/dashboard/master/src/d
eploy/recommended/kubernetes-dashboard.yaml
ommended/kubernetes-dashboard.yaml
secret/kubernetes-dashboard-certs created
serviceaccount/kubernetes-dashboard created
role.rbac.authorization.k8s.io/kubernetes-dashboard-minimal created
rolebinding.rbac.authorization.k8s.io/kubernetes-dashboard-minimal created
deployment.apps/kubernetes-dashboard created
service/kubernetes-dashboard created
26. $ kubectl proxy (screen)
$ curl http://localhost:8001/api/v1/namespaces/kube-
system/services/https:kubernetes-dashboard:/proxy/
<!doctype html> <html ng-app="kubernetesDashboard"> <head> <meta charset="utf-8"> <title ng-
controller="kdTitle as $ctrl" ng-bind="$ctrl.title()"></title> <link rel="icon" type="image/png"
href="assets/images/kubernetes-logo.png"> <meta name="viewport" content="width=device-width"> <link
rel="stylesheet" href="static/vendor.93db0a0d.css"> <link rel="stylesheet" href="static/app.93e259f7.css">
</head> <body ng-controller="kdMain as $ctrl"> <!--[if lt IE 10]>
<p class="browsehappy">You are using an <strong>outdated</strong> browser.
Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your
experience.</p>
<![endif]--> <kd-login layout="column" layout-fill="" ng-if="$ctrl.isLoginState()"> </kd-login> <kd-
chrome layout="column" layout-fill="" ng-if="!$ctrl.isLoginState()"> </kd-chrome> <script
src="static/vendor.bd425c26.js"></script> <script src="api/appConfig.json"></script> <script
src="static/app.b5ad51ac.js"></script> </body> </html>
27. $ kubectl edit svc kubernetes-dashboard -n kube-system
$ kubectl get svc –n kube-system
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kube-dns ClusterIP 10.96.0.10 <none> 53/UDP,53/TCP 40m
kubernetes-dashboard NodePort 10.110.140.252 <none> 443:30225/TCP 9m
39. ()
$ cd heapster/
$ kubectl create -f deploy/kube-config/influxdb/
deployment.extensions/monitoring-grafana created
service/monitoring-grafana created
serviceaccount/heapster created
deployment.extensions/heapster created
service/heapster created
deployment.extensions/monitoring-influxdb created
service/monitoring-influxdb created
$ kubectl create -f deploy/kube-config/rbac/heapster-rbac.yaml
clusterrolebinding.rbac.authorization.k8s.io/heapster created
44. $ kubectl edit svc kubernetes-dashboard -n kube-system
# Please edit the object below. Lines beginning with a '#' will be ignored,
# and an empty file will abort the edit. If an error occurs while saving this file will be
# reopened with the relevant failures.
#
apiVersion: v1
kind: Service
metadata:
…
45. $ kubectl logs kubernetes-dashboard-6948bdb78-wcl9q -n kube-system
…
2018/06/29 06:32:54 [2018-06-29T06:32:54Z] Outcoming response to 10.32.0.1:38848 with 200 status code
2018/06/29 06:32:56 [2018-06-29T06:32:56Z] Incoming HTTP/2.0 GET /api/v1/login/status request from
10.32.0.1:38848: {}
2018/06/29 06:32:56 [2018-06-29T06:32:56Z] Outcoming response to 10.32.0.1:38848 with 200 status code
2018/06/29 06:32:56 [2018-06-29T06:32:56Z] Incoming HTTP/2.0 GET /api/v1/csrftoken/token request from
10.32.0.1:38848: {}
…
46. $ kubectl get pods -n kube-system -o wide
…
NAME READY STATUS RESTARTS AGE IP NODE
coredns-78fcdf6894-245lt 1/1 Running 0 22h 10.40.0.2 k8s-1
coredns-78fcdf6894-q5hm4 1/1 Running 7 22h 10.40.0.1 k8s-1
etcd-k8s-1 1/1 Running 0 22h 192.168.1.13 k8s-1
heapster-dd6db4f9f-gbvtt 1/1 Running 0 1h 10.38.0.2 k8s-3
…
-
51. $ kubectl get po
NAME READY STATUS RESTARTS AGE
nginx-pod 1/1 Running 0 3m
$ kubectl get po -o wide
NAME READY STATUS RESTARTS AGE IP NODE
nginx-pod 1/1 Running 0 4m 10.38.0.3 k8s-3
53. $ kubectl exec -ti nginx-pod bash
$ apt-get update && apt-get install -y curl
$ curl 127.0.0.1:80
…
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>
<p>For online documentation and support please refer to
…
54. n I E . BNP
n CL : / ./ / / . -/
: ,/ / /: . -: - -/ : :/ -/:
/ :/ -/
61. $ kubectl get po -o wide
NAME READY STATUS RESTARTS AGE IP NODE
nginx-pod 1/1 Running 0 16h 10.38.0.3 k8s-3
nginx-pod-2 1/1 Running 0 4m 10.32.0.4 k8s-2
62. $ kubectl exec -ti nginx-pod bash
$ apt-get update && apt-get install -y vim
$ vim /usr/share/nginx/html/index.html
…
<body>
<h1>Welcome to nginx! (pod-1)</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>
…
63. $ kubectl exec -ti nginx-pod-2 bash
$ apt-get update && apt-get install -y vim
$ vim /usr/share/nginx/html/index.html
…
<body>
<h1>Welcome to nginx! (pod-2)</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>
…
83. $ kubectl rollout status deployment/nginx-deploy -n nginx
…
Waiting for deployment "nginx-deploy" rollout to finish: 1 out of 3 new replicas
have been updated...
Waiting for deployment "nginx-deploy" rollout to finish: 1 out of 3 new replicas
have been updated...
Waiting for deployment "nginx-deploy" rollout to finish: 1 out of 3 new replicas
have been updated...
Waiting for deployment "nginx-deploy" rollout to finish: 2 out of 3 new replicas
have been updated
…