Merge pull request #26529 from tengqm/zh-resync-kompose

[zh] Resync translate-compose-kubernetes task
This commit is contained in:
Kubernetes Prow Robot 2021-02-22 04:29:42 -08:00 committed by GitHub
commit ebb3d6a14d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 231 additions and 194 deletions

View File

@ -40,26 +40,25 @@ We have multiple ways to install Kompose. Our preferred method is downloading th
我们有很多种方式安装 Kompose。首选方式是从最新的 GitHub 发布页面下载二进制文件。 我们有很多种方式安装 Kompose。首选方式是从最新的 GitHub 发布页面下载二进制文件。
<!-- {{< tabs name="install_ways" >}}
## GitHub release {{% tab name="GitHub 下载" %}}
<!--
Kompose is released via GitHub on a three-week cycle, you can see all current releases on the [GitHub release page](https://github.com/kubernetes/kompose/releases). Kompose is released via GitHub on a three-week cycle, you can see all current releases on the [GitHub release page](https://github.com/kubernetes/kompose/releases).
--> -->
## GitHub 发布版本 Kompose 通过 GitHub 发布,发布周期为三星期。
Kompose 通过 GitHub 发布版本,发布周期为三星期。
你可以在 [GitHub 发布页面](https://github.com/kubernetes/kompose/releases) 你可以在 [GitHub 发布页面](https://github.com/kubernetes/kompose/releases)
上看到所有当前版本。 上看到所有当前版本。
```shell ```shell
# Linux # Linux
curl -L https://github.com/kubernetes/kompose/releases/download/v1.16.0/kompose-linux-amd64 -o kompose curl -L https://github.com/kubernetes/kompose/releases/download/v1.22.0/kompose-linux-amd64 -o kompose
# macOS # macOS
curl -L https://github.com/kubernetes/kompose/releases/download/v1.16.0/kompose-darwin-amd64 -o kompose curl -L https://github.com/kubernetes/kompose/releases/download/v1.22.0/kompose-darwin-amd64 -o kompose
# Windows # Windows
curl -L https://github.com/kubernetes/kompose/releases/download/v1.16.0/kompose-windows-amd64.exe -o kompose.exe curl -L https://github.com/kubernetes/kompose/releases/download/v1.22.0/kompose-windows-amd64.exe -o kompose.exe
chmod +x kompose chmod +x kompose
sudo mv ./kompose /usr/local/bin/kompose sudo mv ./kompose /usr/local/bin/kompose
@ -68,9 +67,10 @@ sudo mv ./kompose /usr/local/bin/kompose
<!-- <!--
Alternatively, you can download the [tarball](https://github.com/kubernetes/kompose/releases). Alternatively, you can download the [tarball](https://github.com/kubernetes/kompose/releases).
--> -->
或者,你可以下载 [tarball](https://github.com/kubernetes/kompose/releases)。 或者,你可以下载 [tar](https://github.com/kubernetes/kompose/releases)。
## Go {{% /tab %}}
{{% tab name="基于源代码构建" %}}
<!-- <!--
Installing using `go get` pulls from the master branch with the latest development changes. Installing using `go get` pulls from the master branch with the latest development changes.
@ -81,7 +81,8 @@ Installing using `go get` pulls from the master branch with the latest developme
go get -u github.com/kubernetes/kompose go get -u github.com/kubernetes/kompose
``` ```
## CentOS {{% /tab %}}
{{% tab name="CentOS 包" %}}
<!-- <!--
Kompose is in [EPEL](https://fedoraproject.org/wiki/EPEL) CentOS repository. Kompose is in [EPEL](https://fedoraproject.org/wiki/EPEL) CentOS repository.
@ -101,7 +102,8 @@ If you have [EPEL](https://fedoraproject.org/wiki/EPEL) enabled in your system,
sudo yum -y install kompose sudo yum -y install kompose
``` ```
## Fedora {{% /tab %}}
{{% tab name="Fedora package" %}}
<!-- <!--
Kompose is in Fedora 24, 25 and 26 repositories. You can install it just like any other package. Kompose is in Fedora 24, 25 and 26 repositories. You can install it just like any other package.
@ -112,7 +114,8 @@ Kompose 位于 Fedora 24、25 和 26 的代码仓库。你可以像安装其他
sudo dnf -y install kompose sudo dnf -y install kompose
``` ```
## macOS {{% /tab %}}
{{% tab name="Homebrew (macOS)" %}}
<!-- <!--
On macOS you can install latest release via [Homebrew](https://brew.sh): On macOS you can install latest release via [Homebrew](https://brew.sh):
@ -123,6 +126,9 @@ On macOS you can install latest release via [Homebrew](https://brew.sh):
brew install kompose brew install kompose
``` ```
{{% /tab %}}
{{< /tabs >}}
<!-- <!--
## Use Kompose ## Use Kompose
--> -->
@ -135,129 +141,139 @@ you need is an existing `docker-compose.yml` file.
再需几步,我们就把你从 Docker Compose 带到 Kubernetes。 再需几步,我们就把你从 Docker Compose 带到 Kubernetes。
你只需要一个现有的 `docker-compose.yml` 文件。 你只需要一个现有的 `docker-compose.yml` 文件。
1. <!--Go to the directory containing your `docker-compose.yml` file. If you don't 1. <!--Go to the directory containing your `docker-compose.yml` file. If you don't
have one, test using this one.--> have one, test using this one.-->
进入 `docker-compose.yml` 文件所在的目录。如果没有,请使用下面这个进行测试。 进入 `docker-compose.yml` 文件所在的目录。如果没有,请使用下面这个进行测试。
```yaml ```yaml
version: "2" version: "2"
services: services:
redis-master: redis-master:
image: k8s.gcr.io/redis:e2e image: k8s.gcr.io/redis:e2e
ports: ports:
- "6379" - "6379"
redis-slave: redis-slave:
image: gcr.io/google_samples/gb-redisslave:v3 image: gcr.io/google_samples/gb-redisslave:v3
ports: ports:
- "6379" - "6379"
environment: environment:
- GET_HOSTS_FROM=dns - GET_HOSTS_FROM=dns
frontend: frontend:
image: gcr.io/google-samples/gb-frontend:v4 image: gcr.io/google-samples/gb-frontend:v4
ports: ports:
- "80:80" - "80:80"
environment: environment:
- GET_HOSTS_FROM=dns - GET_HOSTS_FROM=dns
labels: labels:
kompose.service.type: LoadBalancer kompose.service.type: LoadBalancer
``` ```
2. <!--Run the `kompose up` command to deploy to Kubernetes directly, or skip to <!--
the next step instead to generate a file to use with `kubectl`.--> 2. To convert the `docker-compose.yml` file to files that you can use with
运行 `kompose up` 命令直接部署到 Kubernetes或者跳到下一步生成 `kubectl` 使用的文件。 `kubectl`, run `kompose convert` and then `kubectl create -f <output file>`.
-->
2. 要将 `docker-compose.yml` 转换为 `kubectl` 可用的文件,请运行 `kompose convert`
命令进行转换,然后运行 `kubectl create -f <output file>` 进行创建。
```bash ```shell
$ kompose up kompose convert
We are going to create Kubernetes Deployments, Services and PersistentVolumeClaims for your Dockerized application. ```
If you need different kind of resources, use the 'kompose convert' and 'kubectl create -f' commands instead.
INFO Successfully created Service: redis ```none
INFO Successfully created Service: web INFO Kubernetes file "frontend-service.yaml" created
INFO Successfully created Deployment: redis INFO Kubernetes file "frontend-service.yaml" created
INFO Successfully created Deployment: web INFO Kubernetes file "frontend-service.yaml" created
INFO Kubernetes file "redis-master-service.yaml" created
INFO Kubernetes file "redis-master-service.yaml" created
INFO Kubernetes file "redis-master-service.yaml" created
INFO Kubernetes file "redis-slave-service.yaml" created
INFO Kubernetes file "redis-slave-service.yaml" created
INFO Kubernetes file "redis-slave-service.yaml" created
INFO Kubernetes file "frontend-deployment.yaml" created
INFO Kubernetes file "frontend-deployment.yaml" created
INFO Kubernetes file "frontend-deployment.yaml" created
INFO Kubernetes file "redis-master-deployment.yaml" created
INFO Kubernetes file "redis-master-deployment.yaml" created
INFO Kubernetes file "redis-master-deployment.yaml" created
INFO Kubernetes file "redis-slave-deployment.yaml" created
INFO Kubernetes file "redis-slave-deployment.yaml" created
INFO Kubernetes file "redis-slave-deployment.yaml" created
```
Your application has been deployed to Kubernetes. You can run 'kubectl get deployment,svc,pods,pvc' for details. ```bash
``` kubectl apply -f frontend-service.yaml,redis-master-service.yaml,redis-slave-service.yaml,frontend-deployment.yaml,
```
3. <!--To convert the `docker-compose.yml` file to files that you can use with <!--
`kubectl`, run `kompose convert` and then `kubectl create -f <output file>`.--> The output is similar to:
要将 `docker-compose.yml` 转换为 `kubectl` 可用的文件,请运行 `kompose convert` 命令进行转换, -->
然后运行 `kubectl create -f <output file>` 进行创建。 输出类似于:
```shell ```none
kompose convert service/frontend created
``` service/redis-master created
service/redis-slave created
deployment.apps/frontend created
deployment.apps/redis-master created
deployment.apps/redis-slave created
```
``` <!--
INFO Kubernetes file "frontend-service.yaml" created Your deployments are running in Kubernetes.
INFO Kubernetes file "redis-master-service.yaml" created -->
INFO Kubernetes file "redis-slave-service.yaml" created 你部署的应用在 Kubernetes 中运行起来了。
INFO Kubernetes file "frontend-deployment.yaml" created
INFO Kubernetes file "redis-master-deployment.yaml" created
INFO Kubernetes file "redis-slave-deployment.yaml" created
```
```shell <!--
kubectl create -f frontend-service.yaml,redis-master-service.yaml,redis-slave-service.yaml,frontend-deployment.yaml,redis-master-deployment.yaml,redis-slave-deployment.yaml 3. Access your application.
``` -->
3. 访问你的应用
``` <!--
service/frontend created If you're already using `minikube` for your development process:
service/redis-master created -->
service/redis-slave created
deployment.apps/frontend created
deployment.apps/redis-master created
deployment.apps/redis-slave created
```
<!-- 如果你在开发过程中使用 `minikube`,请执行:
Your deployments are running in Kubernetes.
-->
你部署的应用在 Kubernetes 中运行起来了。
4. <!--Access your application.--> ```shell
访问你的应用 minikube service frontend
```
<!--If you're already using `minikube` for your development process:--> <!--
Otherwise, let's look up what IP your service is using!
-->
否则,我们要查看一下你的服务使用了什么 IP
如果你在开发过程中使用 `minikube`,请执行: ```shell
kubectl describe svc frontend
```
```shell ```none
minikube service frontend Name: frontend
``` Namespace: default
Labels: service=frontend
Selector: service=frontend
Type: LoadBalancer
IP: 10.0.0.183
LoadBalancer Ingress: 192.0.2.89
Port: 80 80/TCP
NodePort: 80 31144/TCP
Endpoints: 172.17.0.4:80
Session Affinity: None
No events.
```
<!--Otherwise, let's look up what IP your service is using!--> <!--
否则,我们要查看一下你的服务使用了什么 IP If you're using a cloud provider, your IP will be listed next to `LoadBalancer Ingress`.
-->
如果你使用的是云提供商,你的 IP 将在 `LoadBalancer Ingress` 字段给出。
```shell ```shell
kubectl describe svc frontend curl http://192.0.2.89
``` ```
```
Name: frontend
Namespace: default
Labels: service=frontend
Selector: service=frontend
Type: LoadBalancer
IP: 10.0.0.183
LoadBalancer Ingress: 192.0.2.89
Port: 80 80/TCP
NodePort: 80 31144/TCP
Endpoints: 172.17.0.4:80
Session Affinity: None
No events.
```
<!--If you're using a cloud provider, your IP will be listed next to `LoadBalancer Ingress`.-->
如果你使用的是云提供商,你的 IP 将在 `LoadBalancer Ingress` 字段给出。
```shell
curl http://192.0.2.89
```
<!-- discussion --> <!-- discussion -->
@ -284,29 +300,37 @@ you need is an existing `docker-compose.yml` file.
- [`kompose down`](#kompose-down) - [`kompose down`](#kompose-down)
- 文档 - 文档
- [构建和推送 Docker 镜像](#构建和推送-docker-镜像) - [构建和推送 Docker 镜像](#build-and-push-docker-images)
- [其他转换方式](#其他转换方式) - [其他转换方式](#其他转换方式)
- [标签](#标签) - [标签](#labels)
- [重启](#重启) - [重启](#restart)
- [Docker Compose 版本](#docker-compose-版本) - [Docker Compose 版本](#docker-compose-versions)
<!-- <!--
Kompose has support for two providers: OpenShift and Kubernetes. Kompose has support for two providers: OpenShift and Kubernetes.
You can choose a targeted provider using global option `--provider`. If no provider is specified, Kubernetes is set by default. You can choose a targeted provider using global option `--provider`. If no provider is specified, Kubernetes is set by default.
--> -->
Kompose 支持两种驱动OpenShift 和 Kubernetes。 Kompose 支持两种驱动OpenShift 和 Kubernetes。
你可以通过全局选项 `--provider` 选择驱动方式。如果没有指定,会将 Kubernetes 作为默认驱动。 你可以通过全局选项 `--provider` 选择驱动。如果没有指定,
会将 Kubernetes 作为默认驱动。
## `kompose convert` ## `kompose convert`
<!--
Kompose supports conversion of V1, V2, and V3 Docker Compose files into Kubernetes and OpenShift objects.
-->
Kompose 支持将 V1、V2 和 V3 版本的 Docker Compose 文件转换为 Kubernetes 和 OpenShift 资源对象。 Kompose 支持将 V1、V2 和 V3 版本的 Docker Compose 文件转换为 Kubernetes 和 OpenShift 资源对象。
### Kubernetes <!--
### Kubernetes `kompose convert` example
-->
### Kubernetes `kompose convert` 示例
```shell ```shell
kompose --file docker-voting.yml convert kompose --file docker-voting.yml convert
``` ```
```
```none
WARN Unsupported key networks - ignoring WARN Unsupported key networks - ignoring
WARN Unsupported key build - ignoring WARN Unsupported key build - ignoring
INFO Kubernetes file "worker-svc.yaml" created INFO Kubernetes file "worker-svc.yaml" created
@ -325,7 +349,7 @@ INFO Kubernetes file "db-deployment.yaml" created
ls ls
``` ```
``` ```none
db-deployment.yaml docker-compose.yml docker-gitlab.yml redis-deployment.yaml result-deployment.yaml vote-deployment.yaml worker-deployment.yaml 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 db-svc.yaml docker-voting.yml redis-svc.yaml result-svc.yaml vote-svc.yaml worker-svc.yaml
``` ```
@ -338,7 +362,8 @@ You can also provide multiple docker-compose files at the same time:
```shell ```shell
kompose -f docker-compose.yml -f docker-guestbook.yml convert kompose -f docker-compose.yml -f docker-guestbook.yml convert
``` ```
```
```none
INFO Kubernetes file "frontend-service.yaml" created INFO Kubernetes file "frontend-service.yaml" created
INFO Kubernetes file "mlbparks-service.yaml" created INFO Kubernetes file "mlbparks-service.yaml" created
INFO Kubernetes file "mongodb-service.yaml" created INFO Kubernetes file "mongodb-service.yaml" created
@ -368,7 +393,10 @@ When multiple docker-compose files are provided the configuration is merged. Any
--> -->
当提供多个 docker-compose 文件时,配置将会合并。任何通用的配置都将被后续文件覆盖。 当提供多个 docker-compose 文件时,配置将会合并。任何通用的配置都将被后续文件覆盖。
### OpenShift <!--
### OpenShift `kompose convert` example
-->
### OpenShift `kompose convert` 示例
```shell ```shell
kompose --provider openshift --file docker-voting.yml convert kompose --provider openshift --file docker-voting.yml convert
@ -403,7 +431,7 @@ kompose 还支持为服务中的构建指令创建 buildconfig。
kompose --provider openshift --file buildconfig/docker-compose.yml convert kompose --provider openshift --file buildconfig/docker-compose.yml convert
``` ```
``` ```none
WARN [foo] Service cannot be created because of missing port. 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 Buildconfig using git@github.com:rtnpro/kompose.git::master as source.
INFO OpenShift file "foo-deploymentconfig.yaml" created INFO OpenShift file "foo-deploymentconfig.yaml" created
@ -424,15 +452,19 @@ imagestream 工件,以解决 Openshift 的这个问题https://github.com/op
<!-- <!--
Kompose supports a straightforward way to deploy your "composed" application to Kubernetes or OpenShift via `kompose up`. Kompose supports a straightforward way to deploy your "composed" application to Kubernetes or OpenShift via `kompose up`.
--> -->
Kompose 支持通过 `kompose up` 直接将你的"复合的composed" 应用程序部署到 Kubernetes 或 OpenShift。 Kompose 支持通过 `kompose up` 直接将你的"复合的composed" 应用程序
部署到 Kubernetes 或 OpenShift。
### Kubernetes <!--
### Kubernetes `kompose up` example
-->
### Kubernetes `kompose up` 示例
```shell ```shell
kompose --file ./examples/docker-guestbook.yml up kompose --file ./examples/docker-guestbook.yml up
``` ```
``` ```none
We are going to create Kubernetes deployments and services for your Dockerized application. We are going to create Kubernetes deployments and services for your Dockerized application.
If you need different kind of resources, use the 'kompose convert' and 'kubectl create -f' commands instead. If you need different kind of resources, use the 'kompose convert' and 'kubectl create -f' commands instead.
@ -468,26 +500,27 @@ pod/redis-master-1432129712-63jn8 1/1 Running 0 4m
pod/redis-slave-2504961300-nve7b 1/1 Running 0 4m pod/redis-slave-2504961300-nve7b 1/1 Running 0 4m
``` ```
{{< note >}}
<!-- <!--
**Note**:
- You must have a running Kubernetes cluster with a pre-configured kubectl context. - You must have a running Kubernetes cluster with a pre-configured kubectl context.
- Only deployments and services are generated and deployed to Kubernetes. If you need different kind of resources, use the `kompose convert` and `kubectl create -f` commands instead. - Only deployments and services are generated and deployed to Kubernetes. If you need different kind of resources, use the `kompose convert` and `kubectl create -f` commands instead.
--> -->
**注意**
- 你必须有一个运行正常的 Kubernetes 集群,该集群具有预先配置的 kubectl 上下文。 - 你必须有一个运行正常的 Kubernetes 集群,该集群具有预先配置的 kubectl 上下文。
- 此操作仅生成 Deployment 和 Service 对象并将其部署到 Kubernetes。 - 此操作仅生成 Deployment 和 Service 对象并将其部署到 Kubernetes。
如果需要部署其他不同类型的资源,请使用 `kompose convert``kubectl create -f` 命令。 如果需要部署其他不同类型的资源,请使用 `kompose convert``kubectl create -f` 命令。
{{< /note >}}
<!--
### OpenShift ### OpenShift `kompose up` example
-->
### OpenShift `kompose up` 示例
```shell ```shell
kompose --file ./examples/docker-guestbook.yml --provider openshift up kompose --file ./examples/docker-guestbook.yml --provider openshift up
``` ```
``` ```none
We are going to create OpenShift DeploymentConfigs and Services for your Dockerized application. We are going to create OpenShift DeploymentConfigs and Services for your Dockerized application.
If you need different kind of resources, use the 'kompose convert' and 'oc create -f' commands instead. If you need different kind of resources, use the 'kompose convert' and 'oc create -f' commands instead.
@ -508,7 +541,7 @@ Your application has been deployed to OpenShift. You can run 'oc get dc,svc,is'
oc get dc,svc,is oc get dc,svc,is
``` ```
``` ```none
NAME REVISION DESIRED CURRENT TRIGGERED BY NAME REVISION DESIRED CURRENT TRIGGERED BY
dc/frontend 0 1 0 config,image(frontend:v4) dc/frontend 0 1 0 config,image(frontend:v4)
dc/redis-master 0 1 0 config,image(redis-master:e2e) dc/redis-master 0 1 0 config,image(redis-master:e2e)
@ -523,20 +556,18 @@ is/redis-master 172.30.12.200:5000/fff/redis-master
is/redis-slave 172.30.12.200:5000/fff/redis-slave v1 is/redis-slave 172.30.12.200:5000/fff/redis-slave v1
``` ```
{{< note >}}
<!-- <!--
**Note**: You must have a running OpenShift cluster with a pre-configured `oc` context (`oc login`)
- You must have a running OpenShift cluster with a pre-configured `oc` context (`oc login`)
--> -->
**注意** 你必须有一个运行正常的 OpenShift 集群,该集群具有预先配置的 `oc` 上下文 (`oc login`)。
{{< /note >}}
- 你必须有一个运行正常的 OpenShift 集群,该集群具有预先配置的 `oc` 上下文 (`oc login`)。
## `kompose down` ## `kompose down`
<!-- <!--
Once you have deployed "composed" application to Kubernetes, `$ kompose down` will help you to take the application out by deleting its deployments and services. If you need to remove other resources, use the 'kubectl' command. Once you have deployed "composed" application to Kubernetes, `$ kompose down` will help you to take the application out by deleting its deployments and services. If you need to remove other resources, use the 'kubectl' command.
--> -->
你一旦将"复合(composed)" 应用部署到 Kubernetes`kompose down` 你一旦将"复合(composed)" 应用部署到 Kubernetes`kompose down`
命令将能帮你通过删除 Deployment 和 Service 对象来删除应用。 命令将能帮你通过删除 Deployment 和 Service 对象来删除应用。
如果需要删除其他资源,请使用 'kubectl' 命令。 如果需要删除其他资源,请使用 'kubectl' 命令。
@ -554,26 +585,27 @@ INFO Successfully deleted service: frontend
INFO Successfully deleted deployment: frontend INFO Successfully deleted deployment: frontend
``` ```
{{< note >}}
<!-- <!--
**Note**: You must have a running Kubernetes cluster with a pre-configured kubectl context.
-->
- You must have a running Kubernetes cluster with a pre-configured kubectl context. - 你必须有一个运行正常的 Kubernetes 集群,该集群具有预先配置的 kubectl 上下文。
{{< /note >}}
<!--
## Build and Push Docker Images ## Build and Push Docker Images
Kompose supports both building and pushing Docker images. When using the `build` key within your Docker Compose file, your image will: Kompose supports both building and pushing Docker images. When using the `build` key within your Docker Compose file, your image will:
- Automatically be built with Docker using the `image` key specified within your file - Automatically be built with Docker using the `image` key specified within your file
- Be pushed to the correct Docker repository using local credentials (located at `.docker/config`) - Be pushed to the correct Docker repository using local credentials (located at `.docker/config`)
Using an [example Docker Compose file](https://raw.githubusercontent.com/kubernetes/kompose/master/examples/buildconfig/docker-compose.yml): Using an [example Docker Compose file](https://raw.githubusercontent.com/kubernetes/kompose/master/examples/buildconfig/docker-compose.yml):
--> -->
## 构建和推送 Docker 镜像 {#build-and-push-docker-images}
**注意** Kompose 支持构建和推送 Docker 镜像。如果 Docker Compose 文件中使用了 `build`
关键字,你的镜像将会:
- 你必须有一个运行正常的 Kubernetes 集群,该集群具有预先配置的 kubectl 上下文。
## 构建和推送 Docker 镜像
Kompose 支持构建和推送 Docker 镜像。如果 Docker Compose 文件中使用了 `build` 关键字,你的镜像将会:
- 使用文档中指定的 `image` 键自动构建 Docker 镜像 - 使用文档中指定的 `image` 键自动构建 Docker 镜像
- 使用本地凭据推送到正确的 Docker 仓库 - 使用本地凭据推送到正确的 Docker 仓库
@ -598,7 +630,7 @@ Using `kompose up` with a `build` key:
kompose up kompose up
``` ```
``` ```none
INFO Build key detected. Attempting to build and push image 'docker.io/foo/bar' INFO Build key detected. Attempting to build and push image 'docker.io/foo/bar'
INFO Building image 'docker.io/foo/bar' from directory 'build' INFO Building image 'docker.io/foo/bar' from directory 'build'
INFO Image 'docker.io/foo/bar' from directory 'build' built successfully INFO Image 'docker.io/foo/bar' from directory 'build' built successfully
@ -621,10 +653,10 @@ In order to disable the functionality, or choose to use BuildConfig generation (
可以通过传递 `--build (local|build-config|none)` 参数来实现。 可以通过传递 `--build (local|build-config|none)` 参数来实现。
```shell ```shell
# Disable building/pushing Docker images # 禁止构造和推送 Docker 镜像
kompose up --build none kompose up --build none
# Generate Build Config artifacts for OpenShift # 为 OpenShift 生成 Build Config 工件
kompose up --provider openshift --build build-config kompose up --provider openshift --build build-config
``` ```
@ -633,7 +665,7 @@ kompose up --provider openshift --build build-config
The default `kompose` transformation will generate Kubernetes [Deployments](/docs/concepts/workloads/controllers/deployment/) and [Services](/docs/concepts/services-networking/service/), in yaml format. You have alternative option to generate json with `-j`. Also, you can alternatively generate [Replication Controllers](/docs/concepts/workloads/controllers/replicationcontroller/) objects, [Daemon Sets](/docs/concepts/workloads/controllers/daemonset/), or [Helm](https://github.com/helm/helm) charts. The default `kompose` transformation will generate Kubernetes [Deployments](/docs/concepts/workloads/controllers/deployment/) and [Services](/docs/concepts/services-networking/service/), in yaml format. You have alternative option to generate json with `-j`. Also, you can alternatively generate [Replication Controllers](/docs/concepts/workloads/controllers/replicationcontroller/) objects, [Daemon Sets](/docs/concepts/workloads/controllers/daemonset/), or [Helm](https://github.com/helm/helm) charts.
--> -->
## 其他转换方式 ## 其他转换方式 {#alternative-conversions}
默认的 `kompose` 转换会生成 yaml 格式的 Kubernetes 默认的 `kompose` 转换会生成 yaml 格式的 Kubernetes
[Deployment](/zh/docs/concepts/workloads/controllers/deployment/) 和 [Deployment](/zh/docs/concepts/workloads/controllers/deployment/) 和
@ -646,7 +678,8 @@ The default `kompose` transformation will generate Kubernetes [Deployments](/doc
```shell ```shell
kompose convert -j kompose convert -j
``` ```
```
```none
INFO Kubernetes file "redis-svc.json" created INFO Kubernetes file "redis-svc.json" created
INFO Kubernetes file "web-svc.json" created INFO Kubernetes file "web-svc.json" created
INFO Kubernetes file "redis-deployment.json" created INFO Kubernetes file "redis-deployment.json" created
@ -661,7 +694,8 @@ The `*-deployment.json` files contain the Deployment objects.
```shell ```shell
kompose convert --replication-controller kompose convert --replication-controller
``` ```
```
```none
INFO Kubernetes file "redis-svc.yaml" created INFO Kubernetes file "redis-svc.yaml" created
INFO Kubernetes file "web-svc.yaml" created INFO Kubernetes file "web-svc.yaml" created
INFO Kubernetes file "redis-replicationcontroller.yaml" created INFO Kubernetes file "redis-replicationcontroller.yaml" created
@ -671,7 +705,6 @@ INFO Kubernetes file "web-replicationcontroller.yaml" created
<!-- <!--
The `*-replicationcontroller.yaml` files contain the Replication Controller objects. If you want to specify replicas (default is 1), use `--replicas` flag: `$ kompose convert --replication-controller --replicas 3` The `*-replicationcontroller.yaml` files contain the Replication Controller objects. If you want to specify replicas (default is 1), use `--replicas` flag: `$ kompose convert --replication-controller --replicas 3`
--> -->
`*-replicationcontroller.yaml` 文件包含 Replication Controller 对象。 `*-replicationcontroller.yaml` 文件包含 Replication Controller 对象。
如果你想指定副本数(默认为 1可以使用 `--replicas` 参数: 如果你想指定副本数(默认为 1可以使用 `--replicas` 参数:
`kompose convert --replication-controller --replicas 3` `kompose convert --replication-controller --replicas 3`
@ -680,7 +713,7 @@ The `*-replicationcontroller.yaml` files contain the Replication Controller obje
kompose convert --daemon-set kompose convert --daemon-set
``` ```
``` ```none
INFO Kubernetes file "redis-svc.yaml" created INFO Kubernetes file "redis-svc.yaml" created
INFO Kubernetes file "web-svc.yaml" created INFO Kubernetes file "web-svc.yaml" created
INFO Kubernetes file "redis-daemonset.yaml" created INFO Kubernetes file "redis-daemonset.yaml" created
@ -688,17 +721,19 @@ INFO Kubernetes file "web-daemonset.yaml" created
``` ```
<!-- <!--
The `*-daemonset.yaml` files contain the Daemon Set objects The `*-daemonset.yaml` files contain the DaemonSet objects
If you want to generate a Chart to be used with [Helm](https://github.com/kubernetes/helm) simply do: If you want to generate a Chart to be used with [Helm](https://github.com/kubernetes/helm) simply do:
--> -->
`*-daemonset.yaml` 文件包含 Daemon Set 对象。 `*-daemonset.yaml` 文件包含 DaemonSet 对象。
如果你想生成 [Helm](https://github.com/kubernetes/helm) 可用的 Chart只需简单的执行下面的命令 如果你想生成 [Helm](https://github.com/kubernetes/helm) 可用的 Chart
只需简单的执行下面的命令:
```shell ```shell
kompose convert -c kompose convert -c
``` ```
```
```none
INFO Kubernetes file "web-svc.yaml" created INFO Kubernetes file "web-svc.yaml" created
INFO Kubernetes file "redis-svc.yaml" created INFO Kubernetes file "redis-svc.yaml" created
INFO Kubernetes file "web-deployment.yaml" created INFO Kubernetes file "web-deployment.yaml" created
@ -734,9 +769,10 @@ The chart structure is aimed at providing a skeleton for building your Helm char
For example: For example:
--> -->
## 标签 ## 标签 {#labels}
`kompose` 支持 `docker-compose.yml` 文件中用于 Kompose 的标签,以便在转换时明确定义 Service 的行为。 `kompose` 支持 `docker-compose.yml` 文件中用于 Kompose 的标签,以便
在转换时明确定义 Service 的行为。
- `kompose.service.type` 定义要创建的 Service 类型。例如: - `kompose.service.type` 定义要创建的 Service 类型。例如:
@ -761,11 +797,13 @@ For example:
For example: For example:
--> -->
- `kompose.service.expose` 定义是否允许从集群外部访问 Service。 - `kompose.service.expose` 定义是否允许从集群外部访问 Service。
如果该值被设置为 "true",提供程序将自动设置端点,对于任何其他值,该值将被设置为主机名。 如果该值被设置为 "true",提供程序将自动设置端点,
对于任何其他值,该值将被设置为主机名。
如果在 Service 中定义了多个端口,则选择第一个端口作为公开端口。 如果在 Service 中定义了多个端口,则选择第一个端口作为公开端口。
- 对于 Kubernetes 驱动程序,创建了一个 Ingress 资源,并且假定已经配置了相应的 Ingress 控制器。 - 如果使用 Kubernetes 驱动,会有一个 Ingress 资源被创建,并且假定
- 对于 OpenShift 驱动程序, 创建一个 route。 已经配置了相应的 Ingress 控制器。
- 如果使用 OpenShift 驱动, 则会有一个 route 被创建。
例如: 例如:
@ -793,19 +831,18 @@ The currently supported options are:
| kompose.service.type | nodeport / clusterip / loadbalancer | | kompose.service.type | nodeport / clusterip / loadbalancer |
| kompose.service.expose| true / hostname | | kompose.service.expose| true / hostname |
--> -->
当前支持的选项有: 当前支持的选项有:
| 键 | 值 | | 键 | 值 |
|----------------------|-------------------------------------| |------------------------|-------------------------------------|
| kompose.service.type | nodeport / clusterip / loadbalancer | | kompose.service.type | nodeport / clusterip / loadbalancer |
| kompose.service.expose| true / hostname | | kompose.service.expose | true / hostname |
{{< note >}}
<!-- <!--
The `kompose.service.type` label should be defined with `ports` only, otherwise `kompose` will fail. The `kompose.service.type` label should be defined with `ports` only, otherwise `kompose` will fail.
--> -->
{{< note >}} `kompose.service.type` 标签应该只用 `ports` 来定义,否则 `kompose` 会失败。
`kompose.service.type` 标签应该只用`ports`来定义,否则 `kompose` 会失败。
{{< /note >}} {{< /note >}}
<!-- <!--
@ -813,10 +850,10 @@ The `kompose.service.type` label should be defined with `ports` only, otherwise
If you want to create normal pods without controllers you can use `restart` construct of docker-compose to define that. Follow table below to see what happens on the `restart` value. If you want to create normal pods without controllers you can use `restart` construct of docker-compose to define that. Follow table below to see what happens on the `restart` value.
--> -->
## 重启 ## 重启 {#restart}
如果你想创建没有控制器的普通 Pod可以使用 docker-compose 的 `restart` 结构来定义它。 如果你想创建没有控制器的普通 Pod可以使用 docker-compose 的 `restart`
请参考下表了解 `restart` 的不同参数。 结构来指定这一行为。请参考下表了解 `restart` 的不同参数。
<!-- <!--
| `docker-compose` `restart` | object created | Pod `restartPolicy` | | `docker-compose` `restart` | object created | Pod `restartPolicy` |
@ -827,10 +864,10 @@ If you want to create normal pods without controllers you can use `restart` cons
| `no` | Pod | `Never` | | `no` | Pod | `Never` |
--> -->
| `docker-compose` `restart` | 创建的对象 | Pod `restartPolicy` | | `docker-compose` `restart` | 创建的对象 | Pod `restartPolicy` |
|----------------------------|-------------------|---------------------| |----------------------------|-------------------|---------------------|
| `""` | 控制器对象 | `Always` | | `""` | 控制器对象 | `Always` |
| `always` | 控制器对象 | `Always` | | `always` | 控制器对象 | `Always` |
| `on-failure` | Pod | `OnFailure` | | `on-failure` | Pod | `OnFailure` |
| `no` | Pod | `Never` | | `no` | Pod | `Never` |
@ -843,9 +880,9 @@ The controller object could be `deployment` or `replicationcontroller`, etc.
{{< /note >}} {{< /note >}}
<!-- <!--
For e.g. `pival` service will become pod down here. This container calculated value of `pi`. For example, the `pival` service will become pod down here. This container calculated value of `pi`.
--> -->
例如,`pival` Service 将在这里变成 Pod。这个容器计算值为 `pi` 例如,`pival` Service 将在这里变成 Pod。这个容器计算 `pi` 的取值
```yaml ```yaml
version: '2' version: '2'
@ -858,23 +895,22 @@ services:
``` ```
<!-- <!--
### Warning about Deployment Config's ### Warning about Deployment Configurations
If the Docker Compose file has a volume specified for a service, the Deployment (Kubernetes) or DeploymentConfig (OpenShift) strategy is changed to "Recreate" instead of "RollingUpdate" (default). This is done to avoid multiple instances of a service from accessing a volume at the same time. If the Docker Compose file has a volume specified for a service, the Deployment (Kubernetes) or DeploymentConfig (OpenShift) strategy is changed to "Recreate" instead of "RollingUpdate" (default). This is done to avoid multiple instances of a service from accessing a volume at the same time.
--> -->
### 关于 Deployment Config 的提醒 ### 关于 Deployment Config 的提醒
如果 Docker Compose 文件中为服务声明了卷Deployment (Kubernetes) 或 DeploymentConfig (OpenShift) 如果 Docker Compose 文件中为服务声明了卷Deployment (Kubernetes) 或
策略会从 "RollingUpdate" (默认) 变为 "Recreate"。 DeploymentConfig (OpenShift) 策略会从 "RollingUpdate" (默认) 变为 "Recreate"。
这样做的目的是为了避免服务的多个实例同时访问卷。 这样做的目的是为了避免服务的多个实例同时访问卷。
<!-- <!--
If the Docker Compose file has service name with `_` in it (eg.`web_service`), then it will be replaced by `-` and the service name will be renamed accordingly (eg.`web-service`). Kompose does this because "Kubernetes" doesn't allow `_` in object name. If the Docker Compose file has service name with `_` in it (eg.`web_service`), then it will be replaced by `-` and the service name will be renamed accordingly (eg.`web-service`). Kompose does this because "Kubernetes" doesn't allow `_` in object name.
Please note that changing service name might break some `docker-compose` files. Please note that changing service name might break some `docker-compose` files.
--> -->
如果 Docker Compose 文件中的服务名包含 `_` (例如 `web_service`) 如果 Docker Compose 文件中的服务名包含 `_`(例如 `web_service`
那么将会被替换为 `-`,服务也相应的会重命名(例如 `web-service`) 那么将会被替换为 `-`,服务也相应的会重命名(例如 `web-service`
Kompose 这样做的原因是 "Kubernetes" 不允许对象名称中包含 `_` Kompose 这样做的原因是 "Kubernetes" 不允许对象名称中包含 `_`
请注意,更改服务名称可能会破坏一些 `docker-compose` 文件。 请注意,更改服务名称可能会破坏一些 `docker-compose` 文件。
@ -883,14 +919,15 @@ Kompose 这样做的原因是 "Kubernetes" 不允许对象名称中包含 `_`。
## Docker Compose Versions ## Docker Compose Versions
Kompose supports Docker Compose versions: 1, 2 and 3. We have limited support on versions 2.1 and 3.2 due to their experimental nature. Kompose supports Docker Compose versions: 1, 2 and 3. We have limited support on versions 2.1 and 3.2 due to their experimental nature.
A full list on compatibility between all three versions is listed in our [conversion document](https://github.com/kubernetes/kompose/blob/master/docs/conversion.md) including a list of all incompatible Docker Compose keys. A full list on compatibility between all three versions is listed in our [conversion document](https://github.com/kubernetes/kompose/blob/master/docs/conversion.md) including a list of all incompatible Docker Compose keys.
--> -->
## Docker Compose 版本 ## Docker Compose 版本 {#docker-compose-versions}
Kompose 支持的 Docker Compose 版本包括1、2 和 3。有限支持 2.1 和 3.2 版本,因为它们还在实验阶段。 Kompose 支持的 Docker Compose 版本包括1、2 和 3。
对 2.1 和 3.2 版本的支持还有限,因为它们还在实验阶段。
所有三个版本的兼容性列表请查看我们的 所有三个版本的兼容性列表请查看我们的
[转换文档](https://github.com/kubernetes/kompose/blob/master/docs/conversion.md) [转换文档](https://github.com/kubernetes/kompose/blob/master/docs/conversion.md)
文档中列出了所有不兼容的 Docker Compose 关键字。 文档中列出了所有不兼容的 Docker Compose 关键字。