4.POD 的基本用法
文章目录
- POD 的基本用法
- 1.POD运行说明
- 2.POD封装容器的用法
- 3. POD 共享的处理
- 4.POD 配置
- 4.1 ConfigMap
POD 的基本用法
1.POD运行说明
K8S 对容器运行的要求是主程序一直要在前台执行,如果使用 nohup
后台运行的话, 在nohup
执行完毕后则认为POD已经执行结束。接下来会立刻销毁POD。
如果这个时候陪配置了 ReplicationController, 监控到POD已经停止,就又有启动一个新的,这样就会陷入不断启动销毁的循环。所以对要求对制作的docker镜像必须以一个前台的命令作为启动命。
2.POD封装容器的用法
关于POD对于容器的封装要不要把多个耦合度较高的容器封装到一个POD,还没有定论,两种方式各有优劣。这里只是讲POD如何封装使用一个或容器。
容器定义在POD对象yaml的spec.containers
下面。
单个容器示例:
apiVersion: v1
kind: Pod
metadata:labels:pod-template-hash: 74f56b7695workload.user.cattle.io/workloadselector: deployment-pa-dev-haepname: haep-74f56b7695-h442rnamespace: pa-dev
spec:containers:- name: haepimage: registry.com/ecf/haep:2.2.0env:- name: JAVA_TOOL_OPTIONSvalue: -Xmx512m imagePullPolicy: Alwaysports:- containerPort: 8080hostPort: 80name: 80tcp8080protocol: TCP
简单说明:
- apiVersion(String) ,k8s中 APIServer的版本版本号
- kind(String), K8S 资源对象的类型,这里是 Pod对象
- metadata(Object), 定义资源对象的基础属性,对应的label,name和所属的命名空间等
- spec(Object), 对象的详细属性定义,这里是Pod的详细信息
下面的就是pod对象的一些详细属性了 - containers(Object), pod对象的容器定义
- env (List),表示POD容器使用的环境变量,
name
表示变量名称,value
表示变量值 - image (String),表示容器所使用的镜像
- imagePullPolicy (Boolean),表示Pod创建的时候是否总是拉去镜像
- name (String),表示容器名称
- ports (List) , 容器需要暴露的端口
- containerPort(int),暴露容器的端口
- hostPort (int)暴露所在主机的端口,(每个主机只能暴露一个端口,不然端口冲突)
- protocol(String) 使用的协议默认TCP
使用如上的 ports定义则表示把容器的 8080 映射到主机的80
3. POD 共享的处理
当两个容器形成紧密耦合的关系,可以姜两个容器定义在一个POD 中,一个POD中的多个容器可以共享POD级别的Volume(卷),同时两个容器之前通过 localhost+端口就可以实现互相访问。
4.POD 配置
4.1 ConfigMap
ConfigMap 主要作用
- 容器内的环境变量
- 容器启动的命令参数
- 以volume的形式挂载为容器内部的文件或者目录
简述:ConfigMap 一个月或者多个key-value 键值对的方式保存在K8s 系统里面来供应用使用。既可以用作环境变量,可以用作一个完整的配置文件(比如redis 的redis.conf配置文件),当让也可以用于定义脚本。
4.POD 的基本用法相关推荐
- Horizontal Pod Autoscaler (HPA) 根据资源横向扩展
全栈工程师开发手册 (作者:栾鹏) 架构系列文章 Horizontal Pod Autoscaler根据观察到的CPU利用率自动调整复制控制器,部署或副本集中的容器数量(或者,通过 自定义指标 支 ...
- iOS进阶 - pod install 与 pod update 读这一篇就够了
前言 在使用CocoaPods时,难免会混淆 pod install 和 pod update 的用法,于是在官网找到了相应的说明文章,并决定翻译过来,供大家学习. 以下内容来自:pod instal ...
- 2. Pod概念、网络通讯
文章目录 1. K8S为何将Pod作为最小调度单元 2. Pod概念介绍 2-1.Pod控制器介绍 3. 网络通讯 3-1. 同一个Pod内的容器之间的通信 3-2. Pod之间的通信 3-2-1. ...
- 6. POD 配置1
文章目录 1. POD 的基本用法 1.1 POD运行说明 1.2 POD封装容器的用法 1.3 镜像拉取策略 1.4 资源限制 1.5 重启机制 2. POD健康检查 2.1 就绪探针 2.2存活探 ...
- k8s技术预研7--深入掌握Kubernetes Pod
目录 1.Yaml格式的Pod定义文件完整模板详解 2.Pod的基本用法 2.1 由1个容器组成的Pod示例 2.2 由两个为紧耦合关系的容器打包组成的Pod示例 3.静态Pod ...
- 仿斗鱼聊天:基于CoreText的面向对象图文排版工具AWRichText
AWRichText 基于CoreText,面向对象,极简,易用,高效,支持精确点击,UIView混排,GIF动图,并不仅仅局限于图文混排的富文本排版神器. 代码地址:https://github.c ...
- Kubernetes Service 对象的使用
我们前面的课程中学习了Pod的基本用法,我们也了解到Pod的生命是有限的,死亡过后不会复活了.我们后面学习到的RC和Deployment可以用来动态的创建和销毁Pod.尽管每个Pod都有自己的IP地址 ...
- kubernetes 磁盘、PV、PVC
6.1.介绍卷 6.1.1.卷的类型 emptyDir-用于存储临时数据的简单空目录 hostPath-用于将目录从工作节点的文件系统挂载到pod nfs-挂载到pod中的NFS共享卷. 还有其他的如 ...
- k8s架构及服务详解
1.容器及其三要素 1.1.容器是什么 容器的本质是一种特殊的进程. 在linux容器中有三个重要的概念:Namespace.Cgroups.rootfs. Namespace做隔离,让进程只能看到N ...
最新文章
- Vim使用技巧及基本命令分类
- Android中Intent的显示和隐式使用
- 汇编语言--不可屏蔽中断
- MAT之PSO:利用PSO算法优化二元函数,寻找最优个体适应度
- 《系统集成项目管理工程师》必背100个知识点-90信息系统安全属性
- 2017计算机三级试卷,2017年计算机三级《网络技术》测试题及答案
- 谷歌发布端到端AI平台,还有用于视频和表格的AutoML、文档理解API等多款工具
- 以Chef和Ansible为例快速入门服务器配置
- Java 什么是静态内部类
- 在C#代码中应用Log4Net(四)在Winform和Web中捕获全局异常
- ExtJS 4应用架构设计
- codevs 1038 一元三次方程求解 NOIP2001提高组
- 腾达W311R路由器修改Mac地址方法
- 零基础手把手用solidworks教你画联轴器
- 我读《非暴力沟通》- 马歇尔 *卢森堡 - 是什么蒙蔽了爱
- STC51控制的超声波HY-SRF05测距、红外接收小车代码
- QQmm无处藏 2.1
- int类型数据范围 - 学习
- nnunet入门之一 (CT图像分割)
- 计算机等级考试一级有用吗?