亚洲欧美日韩熟女|做爱高潮视频网址|国产一区二区三级片|国产Av中文字幕www.性色av|亚洲婷婷永久免费|国产高清中文字幕|欧美变态网站久re视频精品|人妻AV鲁丝第一页|天堂AV一区二区在线观看|综合 91在线精品

Docker-compose 到 Kubernetes 的遷移工具!

2023-04-12

在 skippbox,我們開發(fā)了 Kompose 這一工具,他能夠自動(dòng)把 Docker Compose 應(yīng)用轉(zhuǎn)換為 Kubernetes 描述文件。利用一個(gè)簡(jiǎn)單的 kompose up命令,就可以在 Kubernetes 集群上啟動(dòng) Compose 應(yīng)用。我們非常樂于將其捐獻(xiàn)給 Kubernetes Incubator。下面介紹一下這一工具的開發(fā)動(dòng)機(jī)和用法。


Docker 給了開發(fā)者以巨大的幫助。讓每個(gè)人都能夠從 Docker Registry 啟動(dòng)一個(gè)打包好的 Docker 應(yīng)用。為了對(duì)付多容器應(yīng)用, Docker 開發(fā)了 Docker-compose (也就是 Compose)。Compose 借助 yaml 格式的描述文件來(lái)定義一個(gè)多容器應(yīng)用,然后就可以用一個(gè)簡(jiǎn)單的 docker-compose up來(lái)啟動(dòng)這一應(yīng)用中的多個(gè)容器。然而,Compose 只能夠在本地或者 Docker Swarm 集群中運(yùn)行。


那如果我們需要在 Swarm 之外運(yùn)行怎么辦?比如 Kubernetes?Compose 格式并非為分布式而誕生的。所以,你只能為你選擇的容器編排工具重新編寫應(yīng)用描述文件。


我們利用 Kompose,能夠簡(jiǎn)單的完成將應(yīng)用從 Docker Swarm 到 Kubernetes 的轉(zhuǎn)換過(guò)程,這樣就為 Docker 用戶敞開了 Kubernetes 的大門。


今年夏天,來(lái)自紅帽的 Tomas Kral 和 Suraj Deshmukh,以及來(lái)自 Google 的 Janet Kuo,他們和 Kompose 的主要開發(fā)者 Nguyen An-Tu 一起為 Kompose 錦上添花。我們把 Kompose 提交給 Kubernets Incubator,得到了 Kubernetes 社區(qū)的支持,現(xiàn)在可以在 Kubernetes Incubator 找到 Kompose。


Kompose 目前支持 Docker-compose v2 格式,最近還加入了持久卷所有權(quán)(PVC)、以及多容器 Pod 的支持。除了缺省的 Kubernetes 之外,我們還支持 Openshift 的發(fā)布能力。Kompose 現(xiàn)在還出現(xiàn)在了 Fedora 包中,未來(lái)也會(huì)進(jìn)入CentOS中去。Kompose 是一個(gè) Golang 應(yīng)用,可以從 Github 上獲取。下面讓我們跳過(guò) Build 環(huán)節(jié)直接進(jìn)入實(shí)例。


Docker 的留言板應(yīng)用


留言板應(yīng)用是 Kubernetes 的權(quán)威示例。如果要用 Docker Compose 來(lái)實(shí)現(xiàn)留言板,可以用下面的代碼:


version: "2"

services:
redis-master:
image: gcr.io/google_containers/redis:e2e
ports:
- "6379"
redis-slave:
image: gcr.io/google_samples/gb-redisslave:v1
ports:
- "6379"
environment:
- GET_HOSTS_FROM=dns
frontend:
image: gcr.io/google-samples/gb-frontend:v4
ports:
- "80:80"
environment:
- GET_HOSTS_FROM=dns

其中包含了三個(gè)服務(wù):


一個(gè) Redis 主節(jié)點(diǎn);
一組能夠橫向擴(kuò)展并借助 DNS 找到 Master 的 Redis 從節(jié)點(diǎn);
暴露于 80 端口的 PHP 前端。
這些組合在一起,讓用戶可以發(fā)表留言,并保存在 Redis 集群中。


要啟動(dòng)這個(gè)應(yīng)用:


$ docker-compose -f docker-guestbook.yml up -d
Creating network "examples_default" with the default driver
Creating examples_redis-slave_1
Creating examples_frontend_1
Creating examples_redis-master_1

這就是一個(gè)簡(jiǎn)單的 Docker 用法,下面我肯看看如何在不重寫任何東西的情況下,讓這些工作在 Kubernetes 上完成。


Kompose 的留言板應(yīng)用


Kompose 目前有三個(gè)主要的命令:up、down 以及 convert。為了行文方便,我們只簡(jiǎn)單說(shuō)一下留言吧應(yīng)用的啟動(dòng)。


跟 docker-compose 類似,我們可以用 kompose up 命令處理 Docker compose 文件,來(lái)啟動(dòng)應(yīng)用:


$ kompose -f ./examples/docker-guestbook.yml up
We are going to create Kubernetes deployment and service for your dockerized application.
If you need more kind of controllers, use 'kompose convert' and 'kubectl create -f' instead.

INFO[0000] Successfully created service: redis-master
INFO[0000] Successfully created service: redis-slave
INFO[0000] Successfully created service: frontend
INFO[0000] Successfully created deployment: redis-master
INFO[0000] Successfully created deployment: redis-slave
INFO[0000] Successfully created deployment: frontend

Application has been deployed to Kubernetes. You can run 'kubectl get deployment,svc' for details.

Kompose 自動(dòng)把 Docker-compose 文件轉(zhuǎn)為 Kuberntes 對(duì)象。缺省情況下,他會(huì)為一個(gè) Compose 服務(wù)創(chuàng)建一個(gè) Deployment 以及一個(gè)服務(wù)。另外還能自動(dòng)檢測(cè)當(dāng)前的 Kuberntes 端點(diǎn),并在上面創(chuàng)建對(duì)象。可以通過(guò)一系列的選項(xiàng)來(lái)創(chuàng)建 Replication Controller、Replica Set 或者 Daemon Set。


就這樣完成了自動(dòng)轉(zhuǎn)換,如果你了解一些 Kubernetes 的話,可以用 kubectl 命令來(lái)看看集群上運(yùn)行的留言板。


$ kubectl get pods,svc,deployments
NAME READY STATUS RESTARTS AGE
frontend-3780173733-0ayyx 1/1 Running 0 1m
redis-master-3028862641-8miqn 1/1 Running 0 1m
redis-slave-3788432149-t3ejp 1/1 Running 0 1m
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
frontend 10.0.0.34 80/TCP 1m
redis-master 10.0.0.219 6379/TCP 1m
redis-slave 10.0.0.84 6379/TCP 1m
NAME DESIRED CURRENT UP-TO-DATE

AVAILABLE AGE
frontend 1 1 1 1 1m
redis-master 1 1 1 1 1m
redis-slave 1 1 1 1 1m

看到了三個(gè)服務(wù)、三個(gè) Deployment 以及三個(gè) Pod??梢酝ㄟ^(guò) frontend 服務(wù)來(lái)訪問留言板應(yīng)用。只不過(guò)這次的留言板,是從 Docker-Compose 文件啟動(dòng)的。



以上給讀者快速的介紹了一下 kompose。還有很多激動(dòng)人心的特性,例如創(chuàng)建不同類型的資源、創(chuàng)建 Helm Chars,甚至可以使用試驗(yàn)性的 Docker bundle 格式進(jìn)行輸入(Lachlan Evenson 的博客:using a Docker bundle with Kubernetes)??梢栽谖覀兊?KubeCon 上的視頻 中看到完整的演示。


前往 Kubernetes incubator 獲取 Kompose,可以幫助你輕松地把應(yīng)用從 Docker Compose 遷移為 Kubernetes 集群應(yīng)用。


轉(zhuǎn)自:https://www.linuxprobe.com/docker-compose-kubernetes.html


本文僅代表作者觀點(diǎn),版權(quán)歸原創(chuàng)者所有,如需轉(zhuǎn)載請(qǐng)?jiān)谖闹凶⒚鱽?lái)源及作者名字。

免責(zé)聲明:本文系轉(zhuǎn)載編輯文章,僅作分享之用。如分享內(nèi)容、圖片侵犯到您的版權(quán)或非授權(quán)發(fā)布,請(qǐng)及時(shí)與我們聯(lián)系進(jìn)行審核處理或刪除,您可以發(fā)送材料至郵箱:service@tojoy.com