, 21 2017 . 09:06
+
6
RootConf 2017, - (++ 2017), Kubernetes . , Kubernetes, .
( ,
) .
( -) , /, .
,
,
, . :
- ;
- ;
- supervision ( );
- service discovery ( );
- ( / );
- ;
- CI/CD (Continuous Integration Continuous Delivery);
- vendor lock-in ( : , bare metal).
, Kubernetes .
Kubernetes
Kubernetes master ( ) ( 5000), :
- Docker,
- kubelet ( Docker),
- kube-proxy ( iptables).
master :
- API,
- etcd,
- (, ),
- controller-manager ( ).
kubectl , YAML ( DSL).
Kubernetes , master . , , :
- + ;
- (Pod; ) ( ) , IP- ( , ); : ( ) Kubernetes;
- (Label, Selector) -, Kubernetes;
- ReplicaSet , ( , - /), ;
- (Deployment) ReplicaSet + ReplicaSet + ( );
- (Service) DNS- + IP + + ( , );
- (Job) ( );
- cron- (CronJob) Job crontab;
- (Volume) ( , ReplicaSet Deployment) , (ReadWrite Once, ReadOnly Many, ReadWrite Many), ( 19 : , , );
- StatefulSet ReplicaSet , /, ( ReplicaSet ) ( , ReplicaSet);
- Ingress , ( / URL').
ReplicaSet YAML:
apiVersion: v1
kind: Pod
metadata:
name: manual-bash
spec:
containers:
- name: bash
image: ubuntu:16.04
command: bash
args: [-c, "while true; do sleep 1; date; done"]
apiVersion: extensions/v1beta1
kind: ReplicaSet
metadata:
name: backend
spec:
replicas: 3
selector:
matchLabels:
tier: backend
template:
metadata:
labels:
tier: backend
spec:
containers:
- name: fpm
image: myregistry.local/backend:0.15.7
command: php-fpm
: Docker-, , CI/CD ( CI, Docker-, YAML- Kubernetes).
: CI/CD
( 50 , 1500 ) ( 500 , 15000 ).
bare metal , :
Ingress (
kube-front-X
):
( Pacemaker VRRP, ucarp .)
Continuous Delivery:
:
- GitLab ( ).
- Kubernetes (production, staging, testing .. ). Kubernetes ( ), GitLab .
- Git Dockerfile ( , dapp) .kube YAML-.
- ( build) Docker, Docker Registry.
- ( test) Docker .
- ( release) YAML- .kube kubectl, Kubernetes, Docker- , YAML. ( Helm, dapp.)
- , (operate) Kubernetes.
( ) (Ceph, AWS, GCE) Ingress, ( ) , Kubernetes:
Kubernetes , . , , , . : , ( ), ( ).
( ) YouTube.
:
,
Kubernetes, . !
P.S. CI/CD
https://habrahabr.ru/post/331188/