Kompose - 开始使用 - Kompose 中文

开始使用

以下是 Kompose 入门方法!

有三个不同的指南,具体取决于你的容器编排器和操作系统。

对于初学者和最兼容性,请遵循 Minikube 和 Kompose 指南。

Minikube 和 Kompose

在本指南中,我们将为 Kubernetes 集群部署一个示例 compose.yaml 文件。

要求

启动 minikube

如果你尚未运行 Kubernetes 集群,minikube 是开始使用的最佳方法。

$ minikube start
Starting local Kubernetes v1.7.5 cluster...
Starting VM...
Getting VM IP address...
Moving files into cluster...
Setting up certs...
Connecting to cluster...
Setting up kubeconfig...
Starting cluster components...
Kubectl is now configured to use the cluster

下载一个 示例组合文件,或使用你自己的

wget https://raw.githubusercontent.com/kubernetes/kompose/main/examples/compose.yaml

将 Compose 文件转换为 Kubernetes

在与 compose.yaml 文件相同的目录中运行 kompose convert

$ kompose convert
INFO Kubernetes file "frontend-service.yaml" created
INFO Kubernetes file "redis-leader-service.yaml" created
INFO Kubernetes file "redis-replica-service.yaml" created
INFO Kubernetes file "frontend-deployment.yaml" created
INFO Kubernetes file "redis-leader-deployment.yaml" created
INFO Kubernetes file "redis-replica-deployment.yaml" created

然后,你可以使用 kubectl apply 在 Kubernetes 中创建这些资源。

访问新部署的服务

现在你的服务已部署,让我们访问它。

如果你正在使用 minikube,可以通过 minikube service 命令访问它。

$ minikube service frontend

否则,请使用 kubectl 查看该服务正在使用的 IP

$ kubectl describe svc frontend
Name:                   frontend
Namespace:              default
Labels:                 service=frontend
Selector:               service=frontend
Type:                   LoadBalancer
IP:                     10.0.0.183
LoadBalancer Ingress:   123.45.67.89
Port:                   80      80/TCP
NodePort:               80      31144/TCP
Endpoints:              172.17.0.4:80
Session Affinity:       None
No events.

注意:如果你正在使用云提供商,你的 IP 将在 LoadBalancer Ingress 旁边列出。

如果你尚未公开你的服务(例如,在 GCE 内),请使用命令

kubectl expose deployment frontend --type="LoadBalancer"

要检查功能,你还可以 curl 该 URL。

$ curl http://123.45.67.89

Minishift 和 Kompose

在本指南中,我们将为 OpenShift 集群部署一个示例 compose.yaml 文件。

要求

注意:除非您使用 oc expose 创建一个 OpenShift 路由,否则将无法访问该服务。您还必须设置虚拟环境。默认情况下,minishift 使用 KVM。

启动 minishift

Minishift 是一款工具,它使用 VM 内部的一个单节点集群帮助在本地运行 OpenShift。类似于 minikube

$ minishift start
Starting local OpenShift cluster using 'kvm' hypervisor...
-- Checking OpenShift client ... OK
-- Checking Docker client ... OK
-- Checking Docker version ... OK
-- Checking for existing OpenShift container ... OK
...

下载一个 示例组合文件,或使用你自己的

wget https://raw.githubusercontent.com/kubernetes/kompose/main/examples/compose.yaml

将 Compose 文件转换为 OpenShift

在与 compose.yaml 文件相同的目录中运行 kompose convert --provider=openshift 命令。

$ kompose convert --provider=openshift
INFO OpenShift file "frontend-service.yaml" created
INFO OpenShift file "redis-leader-service.yaml" created
INFO OpenShift file "redis-replica-service.yaml" created
INFO OpenShift file "frontend-deploymentconfig.yaml" created
INFO OpenShift file "frontend-imagestream.yaml" created
INFO OpenShift file "redis-leader-deploymentconfig.yaml" created
INFO OpenShift file "redis-leader-imagestream.yaml" created
INFO OpenShift file "redis-replica-deploymentconfig.yaml" created
INFO OpenShift file "redis-replica-imagestream.yaml" created

然后,您可以使用 kubectl apply 命令在 OpenShift 集群中创建这些资源。

访问新部署的服务

部署后,您必须创建一个 OpenShift 路由才能访问服务。

如果您正在使用 minishift,您将使用 ocminishift 命令的组合来访问服务。

使用 oc 命令为 frontend 服务创建一个路由

$ oc expose service/frontend
route "frontend" exposed

使用 minishift 访问 frontend 服务

$ minishift openshift service frontend --namespace=myproject
Opening the service myproject/frontend in the default browser...

您还可以访问 OpenShift 的 GUI 界面以查看已部署容器的概览

$ minishift console
Opening the OpenShift Web console in the default browser...

RHEL 和 Kompose

在本指南中,我们将使用 RHEL(Red Hat Enterprise Linux)和 OpenShift 部署一个示例 compose.yaml 文件。

要求

注意:必须设置 KVM 管理程序才能正确地在 RHEL 上使用 minishift。您可以在 CDK Dokumentation 的“设置您的虚拟环境”部分通过 CDK 文档进行设置。

安装 Red Hat Development Suite

在能够使用 minishiftkompose 之前,必须安装 DevSuite。可以获得更简洁的 安装文档

更改为 root。

$ su -

启用 Red Hat Developer Tools 软件仓库。

$ subscription-manager repos --enable rhel-7-server-devtools-rpms
$ subscription-manager repos --enable rhel-server-rhscl-7-rpms

向系统添加 Red Hat Developer Tools 密钥。

$ cd /etc/pki/rpm-gpg
$ wget -O RPM-GPG-KEY-redhat-devel https://www.redhat.com/security/data/a5787476.txt
$ rpm --import RPM-GPG-KEY-redhat-devel

安装 Red Hat Developer Suite 和 Kompose。

$ yum install rh-devsuite kompose -y

启动 minishift

开始之前,必须执行一些准备步骤来设置 minishift

$ su -
$ ln -s /var/lib/cdk-minishift-3.0.0/minishift /usr/bin/minishift
$ minishift setup-cdk --force --default-vm-driver="kvm"
$ ln -s /home/$(whoami)/.minishift/cache/oc/v3.5.5.8/oc /usr/bin/oc

现在即可启动 minishift

$ minishift start
Starting local OpenShift cluster using 'kvm' hypervisor...
-- Checking OpenShift client ... OK
-- Checking Docker client ... OK
-- Checking Docker version ... OK
-- Checking for existing OpenShift container ... OK
...

下载一个 示例组合文件,或使用你自己的

wget https://raw.githubusercontent.com/kubernetes/kompose/main/examples/compose.yaml

将 Compose 文件转换为 OpenShift

在与 compose.yaml 文件相同的目录中运行 kompose convert --provider=openshift 命令。

$ kompose convert --provider=openshift
INFO OpenShift file "frontend-service.yaml" created
INFO OpenShift file "redis-leader-service.yaml" created
INFO OpenShift file "redis-replica-service.yaml" created
INFO OpenShift file "frontend-deploymentconfig.yaml" created
INFO OpenShift file "frontend-imagestream.yaml" created
INFO OpenShift file "redis-leader-deploymentconfig.yaml" created
INFO OpenShift file "redis-leader-imagestream.yaml" created
INFO OpenShift file "redis-replica-deploymentconfig.yaml" created
INFO OpenShift file "redis-replica-imagestream.yaml" created

然后,您可以使用 kubectl apply 在 OpenShift 中创建这些资源。

访问新部署的服务

部署后,您必须创建一个 OpenShift 路由才能访问服务。

如果您正在使用 minishift,您将使用 ocminishift 命令的组合来访问服务。

使用 oc 命令为 frontend 服务创建一个路由

$ oc expose service/frontend
route "frontend" exposed

使用 minishift 访问 frontend 服务

$ minishift openshift service frontend --namespace=myproject
Opening the service myproject/frontend in the default browser...

您还可以访问 OpenShift 的 GUI 界面以查看已部署容器的概览

$ minishift console
Opening the OpenShift Web console in the default browser...