Presentacion Docker Kubernetes
Presentacion Docker Kubernetes
Presentacion Docker Kubernetes
Kubernetes.
●
Conceptos básicos de aplicaciones y OS.
●
Edición y manipulación de archivos.
●
Destreza con la línea de comandos.
●
Instalación de software.
●
Procesos y servicios.
●
Filesystems
●
Red
Software a Instalar
https://download.virtualbox.org/virtualbox/6.1.2/VirtualBox-
6.1.2-135663-Win.exe
http://mirror.uta.edu.ec/centos/7.7.1908/isos/x86_64/Cent
OS-7-x86_64-Minimal-1908.iso
Contenido
1. Introducción a Docker
2. Introducción a Kubernetes
¿Qué es Kubernetes?
Componentes
API
Objetos
Contenedores
Kubeadm, Kops, Docker Client y Minikube
Contenido
Arquitectura de Nodos
Replication Controller
Deployments
Servicios
Labels
Pod
WebUI
Contenido
Service Discovery
ConfigMap
Ingress
External DNS
Volumes
Pod Presets
StatefulSets
AutoScaling
Affinity
Anti-affinity
Taints y Tolerations
Contenido
5. Administración de Kubernetes
Clúster de Administración
Certificates
Gestión de recursos
Cluster Networking
Kubernetes Master Services
Namespaces
User Management
RBAC
Mantenimiento de nodos
Federation
Proxies
Addons
Unidad 1: Introducción a Docker.
●
Los contenedores sirven para "empaquetar aplicaciones"
(Servidores WEB, Bases de datos, ...).
●
No hay capa de virtualizacion involucrada.
●
Se incluyen librerías necesarias en el contenedor.
●
Éso elimina la instalación de dependencias en el sistema
operativo anfitrión.
●
Fácil despliegue.
●
Menos espacio usado y portabilidad simplificada.
●
Independencia del tipo de sistema operativo anfitrión.
●
Compatir imagenes en repos (Docker Hub).
Unidad 1: VM’s vs. Contenedores
Unidad 1: Instalación de Docker Engine
Ubuntu 16.04:
# curl -fsSL https://get.docker.com -o get-docker.sh
# sh get-docker.sh
CentOS 7:
# yum install docker-engine
# systemctl status docker
# systemctl enable docker
Unidad 1: Instalación de Docker Engine
Verificación:
# docker images
# docker info
# docker version
Unidad 1: Instalación de Docker Engine
# docker images
# docker ps
Unidad 1: Instalación de Docker Engine
Disponibilidad de Imagenes.
Imagenes y TAGS.
image_name=${1:-library/debian}
i=0
Hello World.
# docker ps
# docker ps -a
# docker ps --help
Unidad 1: Instalación de Docker Engine
Hello World.
Background:
Interactivo:
Ctrl + p + q
Unidad 1: Instalación de Docker Engine
docker images
apt-get update
apt-get install apache2
service apache2 status
service apache2 start
^p^q
docker ps
Dockerfiles
FROM ubuntu:12.04
MAINTAINER Walter Arguello
RUN apt-get update && apt-get install -y apache2 && apt-get clean && rm -rf
/var/lib/apt/lists/*
EXPOSE 80
ifconfig
Unidad 1: Instalación de Docker Engine
Volumenes en Docker
Unidad 1: Instalación de Docker Engine
Volumenes en Docker
docker volume ls
docker rm <id>
mkfs.xfs /dev/rootvg/dockerlv
Incluir en /etc/fstab
mount -a
¿Qué es Kubernetes?
Arquitectura
Componentes.
Unidad 1: ¿Qué es Kubernetes?
Open Source
Kubernetes es un cluster.
Conjuntos de contenedores
Unidad mínima de definición para Kubernetes.
Unidad 1: Scheduler
Deshabilite SELinux:
setenforce 0
sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
Deshabilite el firewall:
systemctl stop firewalld
Master:
Instale el software:
yum install kubeadm docker
Inicialice el Master:
kubeadm init
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config
Verifique:
kubectl get nodes
Kubectl get pods –all-namespaces
Verifique nuevamente.
Unidad 1: Instalación de Kubernetes
En cada nodo:
Asigne el hostname:
hostnamectl set-hostname 'k8s-master'
Deshabilite SELinux:
setenforce 0
sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
Deshabilite el firewall:
Systemctl stop firewalld
Deshabilitar swap
Habilitar net.bridge.bridge-nf-call-iptables = 1
En cada nodo:
Instale el software:
yum install kubeadm docker
En el Master:
Verifique:
kubectl get nodes
Unidad 1: Instalación de Kubernetes
webapp.yaml:
apiVersion: v1
kind: Pod
metadata:
name: webapp
labels:
app: webapp
spec:
containers:
- name: webserver
image: walterarguellocortes/webserver
ports:
- containerPort: 80
- name: database
image: docker.io/mysql
env:
- name: MYSQL_ROOT_PASSWORD
value: abc123
ports:
- containerPort: 3306