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的容器配置及编排的向导式构建工具**