https://insights.stackoverflow.com/survey/2019
cluster
master
node
node
worker
(minion)
worker
(minion)
node
master
kubectl
(cli)
dashboard
(ui)
REST client
(code)
kubelet
API
server
Scheduller
etcd
Controller
Manager
kube-proxy
Pod
Pod
Pod
Junio
2014
Julio
2014
Julio
2015
Marzo
2018
Commit inicial en GitHub (Google) k8s - Go
Microsoft, RedHat, IBM y Docker
Kubernetes v1.0
Nov
2015
Primer KubeCon
Feb
2016
Helm Package Manager
CNCF Certified
Pod
Pod
Pod
# kubectl apply -f hostname-pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: hostname-pod-example
spec:
containers:
- name: hostname
image: adongy/hostname-docker
# kubectl apply -f hostname-replicaset.yml
apiVersion: apps/v1
kind: ReplicaSet
metadata:
name: hostname-rs-example
labels:
name: hostname
spec:
replicas: 3
selector:
matchLabels:
name: hostname
template:
metadata:
name: hostname-pod-example
labels:
name: hostname
language: golang
spec:
containers:
- name: hostname
image: adongy/hostname-docker
Pod
Pod
Pod
3
# kubectl apply -f hostname-deploy.yml
apiVersion: apps/v1
kind: Deployment
metadata:
name: deploy-example-1
labels:
name: example-1
spec:
replicas: 5
selector:
matchLabels:
name: hostname
strategy:
type: RollingUpdate
template:
metadata:
name: hostname-pod-example
labels:
name: hostname
language: golang
spec:
containers:
- name: hostname
image: adongy/hostname-docker
Pod
Pod
Pod
3
# kubectl apply -f hostname-service.yml
apiVersion: v1
kind: Service
metadata:
name: hostname-svc
labels:
app: hostname
spec:
type: ClusterIP
selector:
app: server
ports:
- port: 9999
protocol: TCP
targetPort: 3000
Pod
Pod
Pod
3
ClusterIP9999
kube-proxy
PodIP
3000
PodIP
3000
PodIP
3000
PodIP
3000
The ultimate introduction to Kubernetes - Pascal Naber
Érase una vez Kubernetes - Manuel Morejón
Basada principalmente en: