Kompose生成k8s资源
摘要
Kompose(名字与Docker Compose相似),是一个将compose转换成为容器编排(k8s或者OpenShift)的工具。
1 开始之前
你必须有个k8s集群,同时kubectl CLI工具必须被正确的配置以连接k8s集群。如果你还没有准备好k8s集群,你可以使用Minikube
使用kubectl version
,检查版本信息。
2 安装Minikube
2.1 Minikube是什么?
- Minikube是一种方便在本地运行Kubernetes的工具.
- Minikube 是可以在VM中运行单节点的Kubernetes集群.
- Minikube是为了开发或测试在本地启动一个节点的kubernetes集群.
2.2 特点
- 不能启动生产集群,没有高可用性的单节点机器.
- 可以工作在Windows,Linux,MacOS下.
2.3 先决条件
2.3.1 安装 kubectl
|
|
2.3.2 安装Minikube
|
|
2.3.2.1 启动Minikube
If you are running within a VM, your hypervisor does not allow nested virtualization. You will need to use the None (bare-metal) driver
缺省Minikube使用VirtualBox驱动来创建Kubernetes本地环境,因为服务本身已经安装在vm虚拟机上,所以这里使用--vm-driver=none
裸机运行
|
|
执行minikube start
会拉取镜像,但是由于GFW,所以会报错拉取不下来,我们可以选择利用docker拉取镜像,最后再修改tag
拉取镜像
|
|
修改标签
|
|
标签修改后,查看镜像
|
|
报错:Error restarting cluster: waiting for apiserver: apiserver process never appeared
执行
|
|
2.3.2.2 开启Minikube dashboard
仪表板是基于Web的Kubernetes用户界面。您可以使用仪表板将容器化的应用程序部署到Kubernetes集群,对容器化的应用程序进行故障排除以及管理集群资源。您可以使用Dashboard来概述集群上运行的应用程序,以及创建或修改单个Kubernetes资源(例如Deployments,Jobs,DaemonSets等)。例如,您可以使用部署向导来扩展部署,启动滚动更新,重新启动Pod或部署新应用程序。 仪表板还提供有关集群中Kubernetes资源状态以及可能发生的任何错误的信息。
|
|
报错:dashboard service is not running: Temporary Error: Error getting service kubernetes-dashboard: services “kubernetes-dashboard” not found
通过查看所有namespaces的pod,我们可以看到kube-addon-manager-minikube正处于imagePullBackOff
或containerCreating
状态,接着查看pod描述
|
|
我们可以获知这个pod在尝试拉取k8s.gcr.io/kube-addon-manager:v9.0.2
镜像时,失败了。通过拉取docker hub镜像,再更改镜像的tag。
|
|
宿主机浏览器访问
如果是centos 7 minimal只有终端环境,所以我们要在宿主机上进行浏览器访问,不需要执行minikube dashboard,使用如下命令开启proxy
|
|
并且使用如下地址访问即可
http://ip:8001/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy
查看所有namespaces的pod,看到还有异常的pod
同样,minikube虚拟机在尝试拉取gcr.io/k8s-minikube/storage-provisioner:v1.8.1
镜像时,失败了。
|
|
3 安装Kompose
有多种方式安装kompose,推荐的方式是从GitHub下载2进制包进行安装
3.1 GitHub release
|
|
3.2 CentOs
|
|
4 使用手册
4.1 kompose convert
Kompose支持将V1,V2和V3 Docker Compose文件转换为Kubernetes和OpenShift对象。
|
|