CES*_*SCO 2 docker coreos kubernetes
我一直在使用kubernetes一段时间了.
$ kubectl version
Client Version: version.Info{Major:"1", Minor:"3", GitVersion:"v1.3.0+2831379", GitCommit:"283137936a
498aed572ee22af6774b6fb6e9fd94", GitTreeState:"not a git tree", BuildDate:"2016-07-05T15:40:25Z", GoV
ersion:"go1.6.2", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"2", GitVersion:"v1.2.0", GitCommit:"5cb86ee022267586db
386f62781338b0483733b3", GitTreeState:"clean", BuildDate:"", GoVersion:"", Compiler:"", Platform:""}
Run Code Online (Sandbox Code Playgroud)
我通常为每个项目设置一个Ingress,Service和Replication Controller.
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
namespace: portifolio
name: portifolio-ingress
spec:
rules:
- host: www.cescoferraro.xyz
http:
paths:
- path: /
backend:
serviceName: portifolio
servicePort: 80
---
apiVersion: v1
kind: Service
metadata:
namespace: portifolio
name: portifolio
labels:
name: portifolio
spec:
selector:
name: portifolio
ports:
- name: web
port: 80
targetPort: 80
protocol: TCP
---
apiVersion: v1
kind: ReplicationController
metadata:
namespace: portifolio
name: portifolio
labels:
name: portifolio
spec:
replicas: 1
selector:
name: portifolio
template:
metadata:
namespace: portifolio
labels:
name: portifolio
spec:
containers:
- image: cescoferraro/portifolio:latest
imagePullPolicy: Always
name: portifolio
env:
- name: KUBERNETES
value: "true"
- name: BRANCH
value: "production"
Run Code Online (Sandbox Code Playgroud)
我的"问题"是,为了部署我的应用程序,我通常会这样做:
kubectl -f delete kubernetes.yaml
kubectl -f create kubernetes.yaml
Run Code Online (Sandbox Code Playgroud)
我希望每当我的应用程序启动或关闭时,我都可以使用单个命令进行部署.当我使用相同的图像时滚动更新不起作用(我认为它是我的kubernetes服务器版本上的一个错误).但是,当应用程序从未部署过时,它也无法正常工作.
我读过有关部署的内容,我想知道它对我有什么帮助?
目标 1.如果应用程序是全新的,则部署2.使用docker注册表中的新映像替换现有的pod.
我不认为将所有资源保留在单个清单中可以帮助您实现您想要实现的目标,因为您的Service,Ingress和ReplicationController不太可能同时更改.
如果您要做的就是推出新的pod,我建议您使用Deployment替换ReplicationController .清单具有几乎完全相同的语法,因此可以轻松地从标准RC迁移,并且您可以使用单个执行服务器端滚动更新kubectl replace -f manifest.yml.
请注意,即使使用Deployment资源,如果清单中没有任何更改,也无法触发重新部署.kubectl replace什么都不做 因此,您可以例如在清单中增加或更改标记,以便在需要时强制部署(例如revision: 003).
| 归档时间: |
|
| 查看次数: |
543 次 |
| 最近记录: |