Draft
Draft 是微軟 Deis 團隊開源(見 https://github.com/azure/draft)的容器應用開發輔助工具,它可以幫助開發人員簡化容器應用程序的開發流程。
Draft 主要由三個命令組成
draft init:初始化 docker registry 賬號,並在 Kubernetes 集群中部署 draftd(負責鏡像構建、將鏡像推送到 docker registry 以及部署應用等)draft create:draft 根據 packs 檢測應用的開發語言,並自動生成 Dockerfile 和 Kubernetes Helm Chartsdraft up:根據 Dockfile 構建鏡像,並使用 Helm 將應用部署到 Kubernetes 集群(支持本地或遠端集群)。同時,還會在本地啓動一個 draft client,監控代碼變化,並將更新過的代碼推送給 draftd。
Draft 安裝
由於 Draft 需要構建鏡像並部署應用到 Kubernetes 集群,因而在安裝 Draft 之前需要
部署一個 Kubernetes 集群,部署方法可以參考 kubernetes 部署方法
安裝並初始化 helm(需要 v2.4.x 版本,並且不要忘記運行
helm init),具體步驟可以參考 helm 使用方法註冊 docker registry 賬號,比如 Docker Hub 或Quay.io
配置 Ingress Controller 並在 DNS 中設置通配符域
*的 A 記錄(如*.draft.example.com)到 Ingress IP 地址。最簡單的 Ingress Controller 創建方式是使用 helm:
# 部署 nginx ingress controller
$ helm install stable/nginx-ingress --namespace=kube-system --name=nginx-ingress
# 等待 ingress controller 配置完成,並記下外網 IP
$ kubectl --namespace kube-system get services -w nginx-ingress-nginx-ingress-controllerminikube Ingress Controller
minikube 中配置和使用 Ingress Controller 的方法可以參考 這裏。
初始化好 Kubernetes 集群和 Helm 後,可以在 這裏 下載 draft 二進制文件,並配置 draft
Draft 入門
draft 源碼中提供了很多應用的 示例,我們來看一下怎麼用 draft 來簡化 python 應用的開發流程。
Draft create 生成 Dockerfile 和 chart
Draft Up 構建鏡像並部署應用
打開一個新的 shell,就可以通過子域名來訪問應用了
Last updated