k8s docker是什么,讓我們一起了解一下?
K8S是一個(gè)使用 Docker 容器進(jìn)行編排的系統(tǒng),主要圍繞 pods 進(jìn)行工作。 Pods 是 k8s 生態(tài)中最小的調(diào)度單位,可以包含一個(gè)或多個(gè)容器。
K8S使用Docker進(jìn)行編排,也可以使用其他容器管理工具,例如:RunC、Containerted 等。
K8S和Docker的關(guān)系是怎樣的?
在K8S里,編排調(diào)度的最小單位并不是容器,而是Pod。有了Docker容器,為什么還需要一個(gè)Pod?我們說Docker容器就好比云計(jì)算操作系統(tǒng)中的應(yīng)用,K8S相當(dāng)于操作系統(tǒng),那Pod就是進(jìn)程組:即Pod是對(duì)一組容器(一個(gè)或多個(gè))的抽象。之所以做這樣一層抽象,是因?yàn)樵?Borg 項(xiàng)目的開發(fā)和實(shí)踐過程中,Google 公司的工程師們發(fā)現(xiàn),他們部署的應(yīng)用,往往都存在著類似于“進(jìn)程和進(jìn)程組”的關(guān)系。在同一個(gè)Pod中,可以直接通過localhost通信,并且可以共享網(wǎng)絡(luò)棧和Volume。
yaml如下:
apiVersion:?v1 kind:?Pod metadata: ??name:?wordpress ??namespace:?blog spec: ??containers: ????-?name:?wordpress ??????image:?wordpress ??????ports: ????????-?containerPort:?80 ??????????name:?wdport ????????env: ????????-?name:?WORDPRESS_DB_HOST ??????????value:?localhost:3306 ????????-?name:?WORDPRESS_DB_USER ??????????value:?root ????????-?name:?WORDPRESS_DB_PASSWORD ??????????value:?root@123 ????-?name:?mysql ??????image:?mysql:5.7 ??????imagePullPolicy:?IfNotPresent ??????args:??#?新版本鏡像有更新,需要使用下面的認(rèn)證插件環(huán)境變量配置才會(huì)生效 ????????-?--default_authentication_plugin=mysql_native_password ????????-?--character-set-server=utf8mb4 ????????-?--collation-server=utf8mb4_unicode_ci ??????ports: ????????-?containerPort:?3306 ??????????name:?dbport ??????env: ????????-?name:?MYSQL_ROOT_PASSWORD ??????????value:?root@123 ????????-?name:?MYSQL_DATABASE ??????????value:?wordpress ????????-?name:?MYSQL_USER ??????????value:?wordpress ????????-?name:?MYSQL_PASSWORD ??????????value:?wordpress ??????volumeMounts: ????????-?name:?db ??????????mountPath:?/var/lib/mysql ????volumes: ??????-?name:?db ????????hostPath: ??????????path:?/var/lib/mysql
當(dāng)然,K8S也解決了裸跑 Docker 的一些痛點(diǎn):
1、單機(jī)使用,無法有效集群
2、隨著容器數(shù)量的上升,管理成本攀升
3、沒有有效的容災(zāi)、自愈機(jī)制
4、沒有預(yù)設(shè)編排模板,無法實(shí)現(xiàn)快速、大規(guī)模容器調(diào)度
5、若要啟動(dòng)一些“軟件”,只能一個(gè)個(gè)去啟動(dòng)(docker run ..)
6、沒有統(tǒng)一的配置管理中心工具
7、沒有容器生命周期的管理工具
8、沒有圖形化運(yùn)維管理工具
以上就是小編的分享,希望可以幫助到大家。