国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Kubernetes配置 Pods 和容器—將 Docker Compose 文件轉(zhuǎn)換為 Kubernetes 資源

這篇具有很好參考價(jià)值的文章主要介紹了Kubernetes配置 Pods 和容器—將 Docker Compose 文件轉(zhuǎn)換為 Kubernetes 資源。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

準(zhǔn)備開始

你必須擁有一個(gè) Kubernetes 的集群,同時(shí)你必須配置 kubectl 命令行工具與你的集群通信。 建議在至少有兩個(gè)不作為控制平面主機(jī)的節(jié)點(diǎn)的集群上運(yùn)行本教程。

安裝 Kompose

我們有很多種方式安裝 Kompose。首選方式是從最新的 GitHub 發(fā)布頁面下載二進(jìn)制文件。

Kompose 通過 GitHub?安裝

# Linux
curl -L https://github.com/kubernetes/kompose/releases/download/v1.26.0/kompose-linux-amd64 -o kompose

# macOS
curl -L https://github.com/kubernetes/kompose/releases/download/v1.26.0/kompose-darwin-amd64 -o kompose

# Windows
curl -L https://github.com/kubernetes/kompose/releases/download/v1.26.0/kompose-windows-amd64.exe -o kompose.exe

chmod +x kompose
sudo mv ./kompose /usr/local/bin/kompose

使用 Kompose

只需幾步,我們就把你從 Docker Compose 帶到 Kubernetes。 你只需要一個(gè)現(xiàn)有的?docker-compose.yml?文件。

  1. 進(jìn)入?docker-compose.yml?文件所在的目錄。如果沒有,請(qǐng)使用下面這個(gè)進(jìn)行測(cè)試。

    version: "2"
    
    services:
    
      redis-master:
        image: registry.k8s.io/redis:e2e
        ports:
          - "6379"
    
      redis-slave:
        image: gcr.io/google_samples/gb-redisslave:v3
        ports:
          - "6379"
        environment:
          - GET_HOSTS_FROM=dns
    
      frontend:
        image: gcr.io/google-samples/gb-frontend:v4
        ports:
          - "80:80"
        environment:
          - GET_HOSTS_FROM=dns
        labels:
          kompose.service.type: LoadBalancer
    
  1. 要將?docker-compose.yml?轉(zhuǎn)換為?kubectl?可用的文件,請(qǐng)運(yùn)行?kompose convert?命令進(jìn)行轉(zhuǎn)換,然后運(yùn)行?kubectl apply -f <output file>?進(jìn)行創(chuàng)建。

    kompose convert                           
    

    輸出類似于:

    INFO Kubernetes file "frontend-tcp-service.yaml" created 
    INFO Kubernetes file "redis-master-service.yaml" created 
    INFO Kubernetes file "redis-slave-service.yaml" created 
    INFO Kubernetes file "frontend-deployment.yaml" created 
    INFO Kubernetes file "redis-master-deployment.yaml" created 
    INFO Kubernetes file "redis-slave-deployment.yaml" created
    
    kubectl apply -f frontend-tcp-service.yaml,redis-master-service.yaml,redis-slave-service.yaml,frontend-deployment.yaml,redis-master-deployment.yaml,redis-slave-deployment.yaml
    

    輸出類似于:

    service/frontend-tcp created
    service/redis-master created
    service/redis-slave created
    deployment.apps/frontend created
    deployment.apps/redis-master created
    deployment.apps/redis-slave created
    

    你部署的應(yīng)用在 Kubernetes 中運(yùn)行起來了。

  1. 訪問你的應(yīng)用。

    如果你在開發(fā)過程中使用?minikube,請(qǐng)執(zhí)行:

    minikube service frontend
    

    否則,我們要查看一下你的服務(wù)使用了什么 IP!

    kubectl describe svc frontend
    
    Name:                     frontend-tcp
    Namespace:                default
    Labels:                   io.kompose.service=frontend-tcp
    Annotations:              kompose.cmd: kompose convert
                              kompose.service.type: LoadBalancer
                              kompose.version: 1.26.0 (40646f47)
    Selector:                 io.kompose.service=frontend
    Type:                     LoadBalancer
    IP Family Policy:         SingleStack
    IP Families:              IPv4
    IP:                       10.43.67.174
    IPs:                      10.43.67.174
    Port:                     80  80/TCP
    TargetPort:               80/TCP
    NodePort:                 80  31254/TCP
    Endpoints:                10.42.0.25:80
    Session Affinity:         None
    External Traffic Policy:  Cluster
    Events:
      Type    Reason                Age   From                Message
      ----    ------                ----  ----                -------
      Normal  EnsuringLoadBalancer  62s   service-controller  Ensuring load balancer
      Normal  AppliedDaemonSet      62s   service-controller  Applied LoadBalancer DaemonSet kube-system/svclb-frontend-tcp-9362d276
    

    如果你使用的是云驅(qū)動(dòng),你的 IP 將在?LoadBalancer Ingress?字段給出。

    curl http://192.0.2.89
    
  1. 清理。

    你完成示例應(yīng)用 Deployment 的測(cè)試之后,只需在 Shell 中運(yùn)行以下命令,就能刪除用過的資源。

    kubectl delete -f frontend-tcp-service.yaml,redis-master-service.yaml,redis-slave-service.yaml,frontend-deployment.yaml,redis-master-deployment.yaml,redis-slave-deployment.yaml
    

用戶指南

kompose convert

Kompose 支持將 V1、V2 和 V3 版本的 Docker Compose 文件轉(zhuǎn)換為 Kubernetes 和 OpenShift 資源對(duì)象。

Kubernetes?kompose convert?示例

kompose --file docker-voting.yml convert
WARN Unsupported key networks - ignoring
WARN Unsupported key build - ignoring
INFO Kubernetes file "worker-svc.yaml" created
INFO Kubernetes file "db-svc.yaml" created
INFO Kubernetes file "redis-svc.yaml" created
INFO Kubernetes file "result-svc.yaml" created
INFO Kubernetes file "vote-svc.yaml" created
INFO Kubernetes file "redis-deployment.yaml" created
INFO Kubernetes file "result-deployment.yaml" created
INFO Kubernetes file "vote-deployment.yaml" created
INFO Kubernetes file "worker-deployment.yaml" created
INFO Kubernetes file "db-deployment.yaml" created
ls
db-deployment.yaml  docker-compose.yml         docker-gitlab.yml  redis-deployment.yaml  result-deployment.yaml  vote-deployment.yaml  worker-deployment.yaml
db-svc.yaml         docker-voting.yml          redis-svc.yaml     result-svc.yaml        vote-svc.yaml           worker-svc.yaml

你也可以同時(shí)提供多個(gè) docker-compose 文件進(jìn)行轉(zhuǎn)換:

kompose -f docker-compose.yml -f docker-guestbook.yml convert
INFO Kubernetes file "frontend-service.yaml" created         
INFO Kubernetes file "mlbparks-service.yaml" created         
INFO Kubernetes file "mongodb-service.yaml" created          
INFO Kubernetes file "redis-master-service.yaml" created     
INFO Kubernetes file "redis-slave-service.yaml" created      
INFO Kubernetes file "frontend-deployment.yaml" created      
INFO Kubernetes file "mlbparks-deployment.yaml" created      
INFO Kubernetes file "mongodb-deployment.yaml" created       
INFO Kubernetes file "mongodb-claim0-persistentvolumeclaim.yaml" created
INFO Kubernetes file "redis-master-deployment.yaml" created  
INFO Kubernetes file "redis-slave-deployment.yaml" created   
ls
mlbparks-deployment.yaml  mongodb-service.yaml                       redis-slave-service.jsonmlbparks-service.yaml  
frontend-deployment.yaml  mongodb-claim0-persistentvolumeclaim.yaml  redis-master-service.yaml
frontend-service.yaml     mongodb-deployment.yaml                    redis-slave-deployment.yaml
redis-master-deployment.yaml

當(dāng)提供多個(gè) docker-compose 文件時(shí),配置將會(huì)合并。任何通用的配置都將被后續(xù)文件覆蓋。

OpenShift?kompose convert?示例

kompose --provider openshift --file docker-voting.yml convert
WARN [worker] Service cannot be created because of missing port.
INFO OpenShift file "vote-service.yaml" created             
INFO OpenShift file "db-service.yaml" created               
INFO OpenShift file "redis-service.yaml" created            
INFO OpenShift file "result-service.yaml" created           
INFO OpenShift file "vote-deploymentconfig.yaml" created    
INFO OpenShift file "vote-imagestream.yaml" created         
INFO OpenShift file "worker-deploymentconfig.yaml" created  
INFO OpenShift file "worker-imagestream.yaml" created       
INFO OpenShift file "db-deploymentconfig.yaml" created      
INFO OpenShift file "db-imagestream.yaml" created           
INFO OpenShift file "redis-deploymentconfig.yaml" created   
INFO OpenShift file "redis-imagestream.yaml" created        
INFO OpenShift file "result-deploymentconfig.yaml" created  
INFO OpenShift file "result-imagestream.yaml" created  

kompose 還支持為服務(wù)中的構(gòu)建指令創(chuàng)建 buildconfig。 默認(rèn)情況下,它使用當(dāng)前 git 分支的 remote 倉(cāng)庫(kù)作為源倉(cāng)庫(kù),使用當(dāng)前分支作為構(gòu)建的源分支。 你可以分別使用?--build-repo?和?--build-branch?選項(xiàng)指定不同的源倉(cāng)庫(kù)和分支。

kompose --provider openshift --file buildconfig/docker-compose.yml convert
WARN [foo] Service cannot be created because of missing port.
INFO OpenShift Buildconfig using git@github.com:rtnpro/kompose.git::master as source.
INFO OpenShift file "foo-deploymentconfig.yaml" created     
INFO OpenShift file "foo-imagestream.yaml" created          
INFO OpenShift file "foo-buildconfig.yaml" created

其他轉(zhuǎn)換方式

?默認(rèn)的 kompose 轉(zhuǎn)換會(huì)生成 yaml 格式的 Kubernetes Deployment 和 Service 對(duì)象。 你可以選擇通過 -j 參數(shù)生成 json 格式的對(duì)象。 你也可以替換生成 Replication Controllers 對(duì)象、 DaemonSet 或 Helm Chart。 ?

kompose convert -j
INFO Kubernetes file "redis-svc.json" created
INFO Kubernetes file "web-svc.json" created
INFO Kubernetes file "redis-deployment.json" created
INFO Kubernetes file "web-deployment.json" created

*-deployment.json?文件中包含 Deployment 對(duì)象。

kompose convert --replication-controller
INFO Kubernetes file "redis-svc.yaml" created
INFO Kubernetes file "web-svc.yaml" created
INFO Kubernetes file "redis-replicationcontroller.yaml" created
INFO Kubernetes file "web-replicationcontroller.yaml" created

*-replicationcontroller.yaml?文件包含 Replication Controller 對(duì)象。 如果你想指定副本數(shù)(默認(rèn)為 1),可以使用?--replicas?參數(shù):?kompose convert --replication-controller --replicas 3

kompose convert --daemon-set
INFO Kubernetes file "redis-svc.yaml" created
INFO Kubernetes file "web-svc.yaml" created
INFO Kubernetes file "redis-daemonset.yaml" created
INFO Kubernetes file "web-daemonset.yaml" created

*-daemonset.yaml?文件包含 DaemonSet 對(duì)象。

如果你想生成?Helm?可用的 Chart, 只需簡(jiǎn)單的執(zhí)行下面的命令:

kompose convert -c
INFO Kubernetes file "web-svc.yaml" created
INFO Kubernetes file "redis-svc.yaml" created
INFO Kubernetes file "web-deployment.yaml" created
INFO Kubernetes file "redis-deployment.yaml" created
chart created in "./docker-compose/"
tree docker-compose/
docker-compose
├── Chart.yaml
├── README.md
└── templates
    ├── redis-deployment.yaml
    ├── redis-svc.yaml
    ├── web-deployment.yaml
    └── web-svc.yaml

這個(gè) Chart 結(jié)構(gòu)旨在為構(gòu)建 Helm Chart 提供框架。

標(biāo)簽

kompose?支持?docker-compose.yml?文件中用于 Kompose 的標(biāo)簽, 以便在轉(zhuǎn)換時(shí)明確定義 Service 的行為。

  • kompose.service.type?定義要?jiǎng)?chuàng)建的 Service 類型。例如:

    version: "2"
    services:
      nginx:
        image: nginx
        dockerfile: foobar
        build: ./foobar
        cap_add:
          - ALL
        container_name: foobar
        labels:
          kompose.service.type: nodeport
    
  • kompose.service.expose?定義是否允許從集群外部訪問 Service。 如果該值被設(shè)置為 "true",提供程序?qū)⒆詣?dòng)設(shè)置端點(diǎn), 對(duì)于任何其他值,該值將被設(shè)置為主機(jī)名。 如果在 Service 中定義了多個(gè)端口,則選擇第一個(gè)端口作為公開端口。

    • 如果使用 Kubernetes 驅(qū)動(dòng),會(huì)有一個(gè) Ingress 資源被創(chuàng)建,并且假定已經(jīng)配置了相應(yīng)的 Ingress 控制器。
    • 如果使用 OpenShift 驅(qū)動(dòng),則會(huì)有一個(gè) route 被創(chuàng)建。

    例如:

    version: "2"
    services:
      web:
        image: tuna/docker-counter23
        ports:
         - "5000:5000"
        links:
         - redis
        labels:
          kompose.service.expose: "counter.example.com"
      redis:
        image: redis:3.0
        ports:
         - "6379"
    

當(dāng)前支持的選項(xiàng)有:

kompose.service.type nodeport / clusterip / loadbalancer
kompose.service.expose true / hostname

說明:

kompose.service.type?標(biāo)簽應(yīng)該只用?ports?來定義,否則?kompose?會(huì)失敗。

重啟

如果你想創(chuàng)建沒有控制器的普通 Pod,可以使用 docker-compose 的?restart?結(jié)構(gòu)來指定這一行為。請(qǐng)參考下表了解?restart?的不同參數(shù)。

docker-compose?restart 創(chuàng)建的對(duì)象 Pod?restartPolicy
"" 控制器對(duì)象 Always
always 控制器對(duì)象 Always
on-failure Pod OnFailure
no Pod Never

說明:

控制器對(duì)象可以是?deployment?或?replicationcontroller。

例如,pival?Service 將在這里變成 Pod。這個(gè)容器計(jì)算?pi?的取值。

version: '2'

services:
  pival:
    image: perl
    command: ["perl",  "-Mbignum=bpi", "-wle", "print bpi(2000)"]
    restart: "on-failure"

關(guān)于 Deployment Config 的提醒

如果 Docker Compose 文件中為服務(wù)聲明了卷,Deployment(Kubernetes)或 DeploymentConfig(OpenShift)策略會(huì)從 “RollingUpdate”(默認(rèn))變?yōu)?“Recreate”。 這樣做的目的是為了避免服務(wù)的多個(gè)實(shí)例同時(shí)訪問卷。

如果 Docker Compose 文件中的服務(wù)名包含?_(例如?web_service), 那么將會(huì)被替換為?-,服務(wù)也相應(yīng)的會(huì)重命名(例如?web-service)。 Kompose 這樣做的原因是 “Kubernetes” 不允許對(duì)象名稱中包含?_

請(qǐng)注意,更改服務(wù)名稱可能會(huì)破壞一些?docker-compose?文件。

Docker Compose 版本

Kompose 支持的 Docker Compose 版本包括:1、2 和 3。 對(duì) 2.1 和 3.2 版本的支持還有限,因?yàn)樗鼈冞€在實(shí)驗(yàn)階段。

?文章來源地址http://www.zghlxwxcb.cn/news/detail-525079.html

到了這里,關(guān)于Kubernetes配置 Pods 和容器—將 Docker Compose 文件轉(zhuǎn)換為 Kubernetes 資源的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 在docker編排文件docker-compose.yml中,指定容器的ip地址

    在docker-compose的yaml文件中,可以使用networks來指定容器的ip地址。具體來說,可以在services下面的某個(gè)service中添加networks字段,然后在該字段下面添加ipv4_address字段來指定該容器的ip地址。例如: 以上我們定義了一個(gè)名為back-tier的網(wǎng)絡(luò),然后在web服務(wù)中使用了該網(wǎng)絡(luò),并指定了

    2024年02月08日
    瀏覽(29)
  • docker 安裝啟動(dòng) nginx 修改配置資源容器端口

    docker 安裝啟動(dòng) nginx 修改配置資源容器端口

    可以先查看docker下是否存在nginx鏡像,使用如下這些命令查看: docker images: 列出所有鏡像。 docker images nginx: 列出所有nginx鏡像,不同版本等等。 docker search nginx: 搜索查看所有nginx鏡像信息。 使用 pull 命令拉取nginx鏡像: 出現(xiàn)以下內(nèi)容,等待下載完成即可: 下載完成nginx鏡像后

    2024年02月07日
    瀏覽(23)
  • Docker_安裝使用_容器鏡像_Docker-compose_常用指令_網(wǎng)絡(luò)配置

    Docker_安裝使用_容器鏡像_Docker-compose_常用指令_網(wǎng)絡(luò)配置

    相關(guān)概念 微服務(wù)雖然具備各種各樣的優(yōu)勢(shì),但服務(wù)的拆分通用給部署帶來了很大的麻煩。 分布式系統(tǒng)中,依賴的組件非常多,不同組件之間部署時(shí)往往會(huì)產(chǎn)生一些沖突。 在數(shù)百上千臺(tái)服務(wù)中重復(fù)部署,環(huán)境不一定一致,會(huì)遇到各種問題。 Docker解決依賴的兼容問題: Docker允

    2024年02月02日
    瀏覽(74)
  • Docker Compose的yaml文件配置

    Docker Compose的yaml文件配置

    1、第一步是確認(rèn)應(yīng)使用的Compose版本 (1)去看官方文檔,根據(jù)給出的文檔選擇對(duì)應(yīng)的Compose版本 https://docs.docker.com/compose/compose-file/compose-file-v3/ Compose和Docker Engine版本對(duì)比截圖: (2)使用以下命令查看自己的docker engine版本 效果圖: (3)由圖可知我的Docker Engine版本為20.10.17,根據(jù)官方

    2024年02月11日
    瀏覽(17)
  • 【Java】微服務(wù)——Docker容器部署(docker安裝,docker配置鏡像加速,DockerHub,docker基本操作,Dockerfile自定義鏡像.Docker-Compose)

    【Java】微服務(wù)——Docker容器部署(docker安裝,docker配置鏡像加速,DockerHub,docker基本操作,Dockerfile自定義鏡像.Docker-Compose)

    微服務(wù)雖然具備各種各樣的優(yōu)勢(shì),但服務(wù)的拆分通用給部署帶來了很大的麻煩。 分布式系統(tǒng)中,依賴的組件非常多,不同組件之間部署時(shí)往往會(huì)產(chǎn)生一些沖突。 在數(shù)百上千臺(tái)服務(wù)中重復(fù)部署,環(huán)境不一定一致,會(huì)遇到各種問題 1.1.1.應(yīng)用部署的環(huán)境問題 大型項(xiàng)目組件較多,運(yùn)

    2024年02月04日
    瀏覽(33)
  • Docker Compose文件中配置說明及示例

    Docker Compose是用于定義和運(yùn)行多個(gè)Docker容器應(yīng)用程序的工具,其配置文件(docker-compose.yml)采用YAML格式。 以下是docker-compose.yml文件中的配置說明: version:指定Compose文件版本。 services:定義需要啟動(dòng)的服務(wù)及它們所需的鏡像、端口映射、環(huán)境變量、掛載到主機(jī)上的目錄等相關(guān)

    2024年02月15日
    瀏覽(32)
  • docker-compose.yml配置文件參數(shù)

    1. image 在 services 標(biāo)簽下的第二級(jí)標(biāo)簽是 web,這個(gè)名字是用戶自己自定義,它就是服務(wù)名稱。 image 則是 指定服務(wù)的鏡像名稱或鏡像 ID 。如果鏡像在本地不存在,Compose 將會(huì)嘗試?yán)∵@個(gè)鏡像。 2. environment 環(huán)境變量 ,這個(gè)標(biāo)簽的作用是 設(shè)置鏡像變量 ,它可以保存變量到鏡像

    2024年02月10日
    瀏覽(34)
  • 【云原生】kubernetes中容器的資源限制

    【云原生】kubernetes中容器的資源限制

    目錄 1 metrics-server 2 指定內(nèi)存請(qǐng)求和限制 3 指定 CPU 請(qǐng)求和限制 資源限制 在k8s中對(duì)于容器資源限制主要分為以下兩類: 內(nèi)存資源限制: 內(nèi)存 請(qǐng)求 (request)和內(nèi)存 限制 (limit)分配給一個(gè)容器。 我們保障容器擁有它請(qǐng)求數(shù)量的內(nèi)存,但不允許使用超過限制數(shù)量的內(nèi)存。 官網(wǎng)參

    2024年02月14日
    瀏覽(24)
  • 三、Docker:Compose安裝、使用、文件結(jié)構(gòu)、配置參數(shù)與命令詳解

    三、Docker:Compose安裝、使用、文件結(jié)構(gòu)、配置參數(shù)與命令詳解

    注意:后續(xù)技術(shù)分享,第一時(shí)間更新,以及更多更及時(shí)的技術(shù)資訊和學(xué)習(xí)技術(shù)資料 ,將在公眾號(hào) CTO Plus 發(fā)布,請(qǐng)關(guān)注公眾號(hào): CTO Plus ? ? Docker-compose 是用于定義和運(yùn)行多容器 Docker 應(yīng)用程序的編排工具。使用 docker-compose 后不再需要逐一創(chuàng)建和啟動(dòng)容器??梢允褂肶ML文件來配

    2024年02月10日
    瀏覽(17)
  • 使用docker-compose.yml快速搭建開發(fā)、部署環(huán)境(nginx、tomcat、mysql、jar包、各種程序)以及多容器通信和統(tǒng)一配置

    image 鏡像名稱,可去鏡像市場(chǎng)查找自己需要的 hostname 容器內(nèi)服務(wù)名 container_name 容器名 volumes 可以把自己電腦的路徑映射到容器中的文件夾中 networks 寫同一個(gè)網(wǎng)絡(luò)可以讓容器之間進(jìn)行通信 啟動(dòng) 在項(xiàng)目根目錄的命令行中輸入 docker-compose up 停止 在項(xiàng)目根目錄的命令行中輸入 d

    2024年02月12日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包