kubectl scale命令用于程序在负载加重或缩小时进行pod扩容或缩小,我们通过一些实际例子来观察scale命令到底能达到什么效果. 命令行创建一个deployment: kubectl run jerry-nginx --image=nginx:1.12.2 kubectl get deploy查看刚刚创建的deployment: 自动被deployment创建的pod: kubectl get pod: 使用下列命令查看生成的deployment明细: kubectl get depl…
很多Kubernetes的初学者对Kubernetes里面三种不同的IP地址和工作机制理解得不是很清楚. 本文我们通过一个最简单的例子来学习. 用如下命令行创建一个基于nginx的deployment: kubectl run nginx --image=nginx:maxline 用kubectl get deploy查看成功生成的名为nginx的deployment: 此时这个deployment里的nginx pod还无法对外界提供服务. 我们创建一个service让外界能够消费.使用命令…
Kubernetes的pod本身是无状态的(stateless),生命周期通常比较短,只要出现了异常,Kubernetes就会自动创建一个新的Pod来代替它. 而容器产生的数据,会随着Pod消亡而自动消失. 为了实现Pod内数据的存储管理,Kubernetes引入了两个API资源:Persistent Volume(持久卷,以下简称PV)和Persistent Volume Claim(持久卷申请,以下简称PVC). PV是Kubernetes集群中的一种网络存储实现,跟Node一样,也是属于集…
要了解Docker Volume,首先我们需要理解Docker文件系统的工作原理.Docker镜像是由多个文件系统的只读层叠加而成.当一个容器通过命令docker run启动时,Docker会加载只读镜像层并在镜像栈顶部添加一个读写层.如果运行中的容器修改了现有的一个已经存在的文件,那该文件将会从读写层下面的只读层复制到读写层,但是该文件的只读版本依然存在,只不过已经被读写层中该文件的副本所隐藏. 当删除Docker容器,并通过该镜像重新启动时,之前在读写层的更改将会丢失.在Docker中,只读…
首先要引用一下类库:using Ionic.Zip;这个类库可以到网上下载. 下面对类库使用的封装方法: 得到指定的输入流的ZIP压缩流对象 /// <summary> /// 得到指定的输入流的ZIP压缩流对象[原有流对象不会改变] /// </summary> /// <param name="sourceStream"></param> /// <returns></returns> public stati…
关于协变逆变,SolidMango的解释是比较可取的.有了协变,比如,在需要返回IEnumerable<object>类型的时候,可以使用IEnmerable<string>来替代:有了逆变,比如,在需要接收IComparable<string>类型形参方法中,可以使用IComparable<object>类型实参来替代. 协变 先来体会协变.有2个具有继承关系的父类和子类. public class Animal { public string Name…
创建一个类型为NetworkPolicy的Kubernetes对象的yaml文件. 第九行的podSelector指定这个NetworkPolicy施加在哪些pod上,通过label来做pod的过滤. 从第16行开始的ingress定义,定义了只有具备标签component=ads,module=app的pod才能够连接component=ads, module=db的pod. 首先创建一个临时的pod,使用正确的label(component=ads,module=app)去访问db pod:…
我之前的文章 如何在Kubernetes里创建一个Nginx service介绍了如何创建一个Kubernetes pod和service,使用的方法是命令kubectl run. 本文介绍另一种方式,通过这种方式来学习Kubernetes里pod和对应的service是如何绑定的. 首先使用下面的命令行创建一个名称为jerry-nginx-1982的deployment: kubectl create deployment jerry-nginx-1982 --image=nginx 然后使用…
上一篇文章 在Kubernetes上运行SAP UI5应用(上),我介绍了如何在Docker里运行一个简单的SAP UI5应用,并且已经成功地将一个包含了这个UI5应用的docker镜像上传到Docker hub上. 这篇文章作为这个主题的下半部分,将会介绍如何在Kubernetes里运行这个docker镜像. 文章目录 Kubernetes里的两个重要概念:pod和deployment Kubernetes保证应用程序高可用性和伸缩性的一些体验 Kubernetes滚动升级(Rolling U…
Jerry之前的文章如何在Kubernetes里创建一个Nginx应用,已经使用kubectl命令行创建了Pod,但是在kubernetes中,Pod的IP地址会随着Pod的重启而变化,因此用Pod的IP地址来访问我们部署的nginx应用不太合适. Kubernetes里推荐的方式是用Service来消费nginx服务. Service为一组Pod提供一个统一的入口,并为它们提供负载均衡 和服务发现支持. 使用如下命令行基于pod创建一个service: kubectl expose deplo…