译文
作者:布加迪编译 2020-04-10 08:00:08
云计算 运行中的Kubernetes pod没必要为了更改而拆除。使用patch选项,为pod添加新容器实际上非常容易。
创新互联是一家专业提供永吉企业网站建设,专注与成都网站建设、网站制作、html5、小程序制作等业务。10年已为永吉众多企业、政府机构等服务。创新互联专业网站建设公司优惠进行中。
【51CTO.com快译】Kubernetes是市面上强大、灵活的容器集群管理器之一。有了这个工具,你几乎可以做任何要做的事情。为已经部署的pod打补丁就是Kubernetes提供的这样一项功能。
比如说,假设你部署了一个含有Nginx容器的pod,但随后又想把Regis和MySQL容器添加进来。你无需把一切拆除下来并重新调整配置文件,只需运行patch命令即可添加新容器。
下面介绍如何做到这一点。虽然该例子很简单,但会演示patch选项如何与kubectl命令协同使用。
你需要什么?
完成这项工作只需要运行中的Kubernetes集群。
想搞清楚如何部署集群,请查看这篇教程:《如何在Ubuntu服务器上部署Kubernetes集群?》。一旦启动并运行了集群,我们可以继续下一步了。
如何部署Kubernetes服务?
我们要做的第一件事是部署Kubernetes服务。使用以下命令创建一个新目录:
- mkdir ~/patch-demo
使用以下命令进入到该新目录:
- cd ~/patch-demo
现在,为含有带基本模板的Nginx和两个副本的服务部署创建一个YAML文件。使用以下命令创建该文件:
- nano deployment-patch.yaml
在该文件中,粘贴以下内容:
- apiVersion: apps/v1 # for versions before 1.9.0 use apps/v1beta2
- kind: Deployment
- metadata:
- name: patch-demo
- spec:
- replicas: 2
- selector:
- matchLabels:
- app: nginx
- template:
- metadata:
- labels:
- app: nginx
- spec:
- containers:
- - name: patch-demo-ctr
- image: nginx
- tolerations:
- - effect: NoSchedule
- key: dedicated
- value: test-team
保存并关闭文件。使用以下命令部署该配置:
- kubectl apply -f deployment-patch.yaml
现在你可以通过执行以下命令看到该pod处于运行中:
- kubectl get pods
该patch-demo补丁将被列为运行中(图A)。
图A. 我们的Kubernetes patch-demo pod已启动并在运行中
如何为运行中的服务打补丁?
现在,我们将创建一个战略性合并补丁文件,该文件将为pod添加Redis容器。使用以下命令创建补丁文件:
- nano patch-file.yaml
在该文件中,粘贴以下内容:
- spec:
- template:
- spec:
- containers:
- - name: patch-demo-ctr-2
- image: redis
保存并关闭文件。
为了给运行中的服务打补丁,执行以下命令:
- kubectl patch deployment patch-demo --patch "$(cat patch-file.yaml)"
该实例中发生的是,部署将终止旧pod,创建新pod。
你可以继续这一步。比如说,假设你想把MySQL添加进来。用以下命令创建另一个补丁文件:
- nano patch-file-2.yaml
在该文件中,粘贴以下内容:
- spec:
- template:
- spec:
- containers:
- - name: patch-demo-ctr-3
- image: mysql
保存并关闭文件,重新运行patch命令,就像这样:
- kubectl patch deployment patch-demo --patch "$(cat patch-file-2.yaml)"
如果你执行该命令:
- kubectl get deployment patch-demo --output yaml
会看到Nginx、Redis和MySQL都在pod中(图B)。
图B. 我们的Kubernetes pod现包括所有三个映像
对于该补丁系统,你无法做到的一件事就是为pod扩增副本的数量。为此,你要使用scale命令,就像这样:
- kubectl scale --replicas=4 deployment patch-demo
或者你可以把它缩减至0来删除pod,就像这样:
- kubectl scale --replicas=0 deployment patch-demo
这就是为运行中的Kubernetes服务打补丁的一切。虽然这篇教程很基础,但你会发现有了patch命令,你几乎可以做一切事情。
原文标题:How to patch a running Kubernetes pod,作者:Jack Wallen
【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】
本文题目:如何为运行中的Kubernetespod打补丁?
网站URL:http://www.shufengxianlan.com/qtweb/news38/41538.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联