用清晰的语言进行容器化:从最基础到使用Kubernetes的复杂性



, Docker , Kubernetes . «» Southbridge . , .

,





?



. . , , , . . , . , vmware vsphere, , QEMU KVM, Red Hat — Red Hat Virtualization. Windows Hyper-V.



. : , , .



?



, . . , , , . , .



, ?



, , , , . Linux — OpenVZ, Virtuozzo. OpenVZ. OpenVZ, .



, ?



. ( Intel, AMD, VMX).



, , . Docker, , cgroups Linux.



– ? , ?



. . .



? , ?



. .



, ? : , . - . , . ?



— , : , init, systemd . ? , , . , , , , . .



— . , , . , , .



Docker ( ), , .



, . , Linux VMware, Windows. Linux, Linux. , , — cgroups namespace.



? , ? , , ?



, . , , , - ( ). 10 , . , , .



, , , Alpine Linux, 20 50 . , .



, Docker , - ?



. Docker- . - , Alpine, CentOS Ubuntu. , .



? Alpine Linux.



, .



Linux ?



, .



, , .



, Docker — .



? , , ?



— .



. - , - , ?



, . - , .



Docker ? , - Linux?



. . Docker , namespace cgroups , , . , , .



Docker . , , , — .



, ? , : - , …



, , , . . , , , , stdout/stderr , .



Docker- , . , , , — , , — . stdout/stderr, Docker ElasticSearch, ClickHouse - . , . , , .



, . , , . , , , . , , .



Windows? , , , Linux.



, , . Windows-, . , Windows . , , , , . Windows Windows. Windows Server Containerization, (Windows-, ).



, Docker Windows, . Docker — Linux, , .



, . — , , , . , . , . Microsoft Hyper-V, Linux QEMU KVM, vSphere . , .



? Docker, .



— , . – , , namespace cgroups. , Docker .



, Linux, ? API Linux -, …



- .



, ?



, API Windows API Linux — . Docker macOS. .



, macOS Linux .



. macOS UNIX-like, Linux. , GNU — is not UNIX ( ). macOS , , . , Linux. .



Docker Windows, macOS — , .



, , ?



, . Docker Desktop , . , . - Docker, Windows macOS, , . .



, Linux , WSL (Windows Subsystem for Linux)?



, OpenNET .



? , ?



, WSL — Wine . API . Wine — API Linux, WSL — . . , .





, , , : 10, 20, 40, 100 . . ?



, . , , , . , . Docker, Docker Compose . , , - , . , - Service Discovery .



, . , , . , , , , , .





, «»



Docker Compose ? .



Docker Compose, , . - . , .



. ? , ?



, — - Kubernetes. , Google. Google , .



, , Docker Swarm, Mesos, OpenShift , - Kubernetes. , , , Kubernetes.



, Kubernetes?



, . , Kubernetes . , , ( , ) : «, Kubernetes . — !» .



Kubernetes . Kubernetes , , , , . , Kubernetes.



, : « !» , .



Kubernetes Docker ?



Kubernetes , Docker. Kubernetes , Container Runtime Interface. , , Container Runtime Interface, Kubernetes. , rkt.



, Docker Kubernetes - . Docker . Docker — , , . , Kubernetes, - .



. , , , . , Docker, .



Docker ?



, Docker . , containerd . , 1.11, , Docker containerd . , Docker containerd, containerd, runC, .



- Podman: Podman — Docker, . , Docker.



, Kubernetes ? ? , Kubernetes — - , , ?



, . , . .



, Kubernetes — . , , .



Kubernetes , ( ). :



  1. . , .
  2. pull-. , , , , . : , . , .


. — API-. , REST API ( , ): http-, . , API, API . API, : (, ), .



API- , etcd. Etcd — key-value , «-». API- — , .



- kubernetes?



, , .



Redis , ?



Redis , ( ). etcd , , .



, , Kubernetes etcd, , , key-value -.



API- , etcd , , . etcd . , — , .



- , , API-. , , , kubectl. , , . yaml-, , . . etcd API-.



, watch'. DDoS' . , — kube-controller-manager. , Kubernetes. : node-controller, endpoint-controller. , Kubernetes, , . : , , - .



. , , - , , — , - , . , etcd, . , , . , ReplicaSet. . , . .



?



.



?



. — — .



.



, .



?



. .



ReplicaSet , , . , .



, ReplicaSet, . ( ).



, , , ReplicaSet, ReplicaSet controller -, ReplicaSet , , , etcd API- .



. , , , etcd . , scheduler. . , . , .



, , , 1 , 512 , .



Docker- ?



, .



-.



.



scheduler’ , , . , , , , .



? , - , , .



. . , . priority class — , .



, : . , . priority class . . , Kubernetes , ( Node Controller, ), , , , . Scheduler .



, , .



?



, . pending, , . scheduler … , , nodeName — . scheduler — . Scheduler , , Node №2, , API- etcd . , kubelet.



Kubelet — "node agent", , . API- . , , , « » , , . : «! !» , , . Docker API, , , Docker, .



Kubelet, , Docker ?



, , . , , Docker . , Docker API, . , , API-.



- ?



- Kubelet. , . , , , — , . . — .



— ?



— , Kubelet.



, ?



, .



, . Kubelet - , stdout ? . , stdout , - kubernetes - , ?



, . ( ) — Docker. ( ) — , , - - — Kubelet, , .



:



  1. http-get — http- , , , , , . 200 399 — , 301 — . 404 — . 500 .
  2. exec — - , - , . , select 1, , .
  3. tcp socket — Kubelet . , .


: liveness, readiness startup .



Liveness — . Kubelet , . , , , .



Readiness — , . , . , , .



Startup – , , . . startup , .



Kubernetes? ?



, 5000+, , . 110 , 110 .



— ? ?



— , . , - , - , , Kubernetes.



Kubernetes . : « ». : « ». , . , , nginx php-fpm , .



, — . -, 2-3 , , . , , pause , namespace, namespace, .



. Kubernetes Ansible. !



iamitbeard




All Articles