Dckr

<谨供参考>

最近发现个好东西-Dckr : 一款基于Docker的容器配置及编排的向导式构建工具(支持Docker、Compose、Kubernets、Rancher的资源文件向导式构建)

引自官方:

1
2
3
4
5
6
7
8
9
10
11
12
13
通过它,你可以轻松完成以下操作:

借助语义化UI向导式构建Dockerfile、docker-compose.yaml、Kubernetes资源文件、Rancher Chart。
支持docker-compose.yaml向Kubernetes资源文件的转换。
支持docker-compose.yaml或Kubernetest(Helm Chart)向Rancher Chart的转换。

它的存在意义:

通过语义化UI向导式的指引你去构建相关容器配置、编排文件,降低了你的学习成本。
通过转换功能,能轻松地将不同容器产品的配置文件进行相互转换,极大地提高了你的工作效率。
通过它进行构建的YAML文件是符合规范的,让你摆脱编写YAML文件因缩进等格式问题带来的痛苦。
通过它你可以轻松对相关配置项进行更改,然后点击构建按钮,编辑器内容也会相应变化;可用于辅助容器相关教学。
它的实现方案,能为诸如:"通过语义化UI实现配置文件的生成"等各种需求,提供一定的思路甚至是一种解决方案。

下面演示下k8s部署mysql是如何使用dckr进行向导式构建的

  • 首先添加配置文件mysql-deployment.yaml用于创建Deployment
  • 定义存储卷
  • 将存储卷挂载到容器内部路径,设置环境变量,指定开放的端口,指定容器镜像
  • 填写其他信息(副本数量,pod标签)
  • 构建,得到yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
apiVersion: apps/v1
kind: Deployment
metadata:
namespace: default
labels:
app: mysql
name: mysql-deployment
spec:
replicas: 1
selector:
matchLabels:
app: mysql
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 25%
maxUnavailable: 25%
template:
metadata:
labels:
app: mysql
spec:
containers:
- name: mysql
image: mysql:5.7
imagePullPolicy: IfNotPresent
volumeMounts:
- name: log-volume
mountPath: /var/log/mysql
- name: data-volume
mountPath: /var/lib/mysql
- name: conf-volume
mountPath: /etc/mysql
ports:
- containerPort: 3306
hostPort: 3306
env:
- name: MYSQL_ROOT_PASSWORD
value: root
volumes:
- name: conf-volume
hostPath:
path: /home/docker/mydata/mysql/conf
- name: conf-volume
hostPath:
path: /home/docker/mydata/mysql/conf
- name: conf-volume
hostPath:
path: /home/docker/mydata/mysql/conf

ps: 截至2021/05/05,它这里有个bug,就是填写pod数据券配置(hostPath类型)信息有问题,似乎所有类型的数据券输入框绑定这里都有点小问题.
目前已修复

  • 想要其他Pod可以通过服务名称访问MySQL,需要创建mysql-service
1
2
kubectl apply -f mysql-deployment.yaml
kubectl apply -f mysql-service.yaml

当然目前来看的话,还是有些小bug,但是总的来说,这是一个好玩并且好用的开源项目

**源码仓库地址: Dckr-基于Docker的容器配置及编排的向导式构建工具**