创建一个类型为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里的job(作业),我们可以很方便地执行一些比较耗时的操作. 新建一个job.ymal文件: 定义了一个Kubernetes job,名称为pi,类型为job,容器名称为pi,镜像为perl,执行的per命令为 print bpi(2000): 这个ymal文件的完整内容: apiVersion: batch/v1 kind: Job metadata: name: pi spec: template: metadata: name: pi spec: container…
Jerry之前的文章如何在Kubernetes里创建一个Nginx应用,已经使用kubectl命令行创建了Pod,但是在kubernetes中,Pod的IP地址会随着Pod的重启而变化,因此用Pod的IP地址来访问我们部署的nginx应用不太合适. Kubernetes里推荐的方式是用Service来消费nginx服务. Service为一组Pod提供一个统一的入口,并为它们提供负载均衡 和服务发现支持. 使用如下命令行基于pod创建一个service: kubectl expose deplo…
由于想要开启ipvs,没想到把cm当成pod删除了....然后就开始了修复之路 ConfigMap介绍 ConfigMap是一种API对象,用来将非加密数据保存到键值对中.可以用作环境变量.命令行参数或者存储卷中的配置文件. ConfigMap可以将环境变量配置信息和容器镜像解耦,便于应用配置的修改.如果需要存储加密信息时可以使用Secret对象. 所以configmap只是一个配置文件,只要不删除pod,那么pod内的文件还是在的,所以就需要找到pod内的文件位置 这两个文件就是cm的配置文件…
顾名思义,ConfigMap用于保存配置数据的键值对,可以用来保存单个属性,也可以用来保存配置文件. ConfigMap同Kubernetes的另一个概念secret类似,区别是ConfigMap主要用于保存不包含敏感信息的明文字符串. 创建方式: kubectl create configmap special-config --from-literal=i042416=jerry 上述命令行创建了一个名为special-config的键值对, key为i042416, 值为jerry 接下来…
Service是Kubernetes接入层的一种抽象资源,它为我们提供了一种固定的.统一的访问接口地址和负载均衡能力,这时可能会想到,当时使用docker-compose的时候,不存在Service概念,不也运行起来了吗?是的,在Kubernetes集群内部Pod ip也是互通的,但是Pod的ip会经常因为扩容.重建而导致客户端访问错误,pod访问无法提供负载均衡的能力,而Service通过选择一组Pod的label就直接可以访问到Pod,而且可以使用万年不变的域名,所以就选择Service了.…
Kubernetes的pod本身是无状态的(stateless),生命周期通常比较短,只要出现了异常,Kubernetes就会自动创建一个新的Pod来代替它. 而容器产生的数据,会随着Pod消亡而自动消失. 为了实现Pod内数据的存储管理,Kubernetes引入了两个API资源:Persistent Volume(持久卷,以下简称PV)和Persistent Volume Claim(持久卷申请,以下简称PVC). PV是Kubernetes集群中的一种网络存储实现,跟Node一样,也是属于集…
Secret解决了密码.token.密钥等敏感数据的配置问题,使用Secret可以避免把这些敏感数据以明文的形式暴露到镜像或者Pod Spec中. Secret可以以Volume或者环境变量的方式使用. 使用如下命令行创建一个secret: kubectl create secret generic admin-access --from-file=./username.txt --from-file=./password.txt 输入文件username.txt和password.txt需要手…
系列目录 在编排kubernetes时,Deployment的Pod项有containerPort,Service文件里的port,targetPort, nodePort,这些pod概念有些时候可能会让人感到非常困惑,这里通过示例来简单介绍各种port的含义 apiVersion: extensions/v1beta1 kind: Deployment metadata: name: tomcat-deployment spec: replicas: 3 template: metadata:…
配置容器化应用的方式:①命令行参数:②环境变量:③文件化配置 一.向容器传递命令行参数或环境变量 这两种方式在 Pod 创建后不可被修改 1. 在Docker中定义命令与参数 ENTRYPOINT:容器启动时被调用的可执行程序 CMD:传递给 ENTRYPOINT 的默认参数.可被覆盖docker run <image> <arguments> 上面两条指令均支持以下两种形式 shell:ENTRYPOINT node app.js(/bin/sh -c node app.js)…