赞
踩
Draft: 提供了一个用于简化容器构建和部署(基于 Helm)的工具,使用方法见这里
Skaffold:同 Draft 类似,但不支持 Helm,使用方法见这里
Metaparticle:提供了一套用于开发云原生应用的标准库,使用方法见
https://metaparticle.io
(1)Jenkins X
(2)Spinnaker
(3)Argo
(4)Flux GitOps
(1)Kompose
(1)Draft 是微软 Deis 团队开源(见 https://github.com/azure/draft)的容器应用开发辅助
工具,它可以帮助开发人员简化容器应用程序的开发流程。
(2)Draft 主要由三个命令组成
由于 Draft 需要构建镜像并部署应用到 Kubernetes 集群,因而在安装 Draft 之前需要部署一个 Kubernetes 集群,部署方法可以参考 kubernetes 部署方法
(1)安装并初始化 helm(需要 v2.4.x 版本,并且不要忘记运行 helm init ),具体步骤可以参考 helm 使用方法
(2)注册 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=nginxingress
# 等待 ingress controller 配置完成,并记下外网 IP
kubectl --namespace kube-system get services -w nginx-ingress-nginx-ingress controller
初始化好 Kubernetes 集群和 Helm 后,可以先下载 draft 二进制文件,并配置 draft
# 注意修改用户名、密码和邮件
token=$(echo
'{"username":"feisky","password":"secret","email":"feisky@email.com"}' |
base64)
# 注意修改 registry.org 和 basedomain
draft init --set
registry.url=docker.io,registry.org=feisky,registry.authtoken=${token},basedomain
draft 源码中提供了很多应用的 示例,我们来看一下怎么用 draft 来简化 python 应用的开发流
程。
1. $ git clone https://github.com/Azure/draft.git
2. $ cd draft/examples/python
3. $ ls
4. app.py requirements.txt
5.
6. $ cat requirements.txt
7. flask
8. $ cat app.py
9. from flask import Flask
10. app = Flask(__name__)
11.
12. @app.route('/')
13. def hello_world():
14. return "Hello, World!\n"
15.
16. if __name__ == '__main__':
17. app.run(host='0.0.0.0', port=8080)
1. $ draft create
2. --> Python app detected
3. --> Ready to sail
4. $ ls
5.Dockerfile app.py chart draft.toml
requirements.txt
6. $ cat Dockerfile
7. FROM python:onbuild
8. EXPOSE 8080
9. ENTRYPOINT ["python"]
10. CMD ["app.py"]
11. $ cat draft.toml
12. [environments]
13. [environments.development]
14. name = "virulent-sheep"
15. namespace = "default"
16. watch = true
17. watch_delay = 2
1. $ draft up
2. --> Building Dockerfile
3. Step 1 : FROM python:onbuild
4. onbuild: Pulling from library/python
5. 10a267c67f42: Pulling fs layer
6. ....
7. Digest: sha256:5178d22192c2b8b4e1140a3bae9021ee0e808d754b4310014745c11f03fcc61b
8. Status: Downloaded newer image for python:onbuild
9. # Executing 3 build triggers...
10. Step 1 : COPY requirements.txt /usr/src/app/
11. Step 1 : RUN pip install --no-cache-dir -r requirements.txt
12. ....
13. Successfully built f742caba47ed
14.
--> Pushing docker.io/feisky/virulentsheep:de7e97d0d889b4cdb81ae4b972097d759c59e06e
15. ....
16.
de7e97d0d889b4cdb81ae4b972097d759c59e06e: digest:
sha256:7ee10c1a56ced4f854e7934c9d4a1722d331d7e9bf8130c1a01d6adf7aed6238 size:
2840
17. --> Deploying to Kubernetes
18. Release "virulent-sheep" does not exist. Installing it now.
19. --> Status: DEPLOYED
20. --> Notes:
21.
22. http://virulent-sheep.app.feisky.xyzto access your application
23.
24. Watching local files for changes...
1. $ curl virulent-sheep.app.feisky.xyz
2. Hello, World!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。