一卷旌收千骑虏,万全身出百重围。这篇文章主要讲述#yyds干货盘点#k8s中的基础核心概念相关的知识,希望能为你提供帮助。
1. Pod
【#yyds干货盘点#k8s中的基础核心概念】Pod是k8s中最小的逻辑单元,也叫做k8s的原子单元。一个Pod里可以运行多个容器,他们共享UTS命名空间(隔离Hostname和NIS域名)、共享NET命名空间(隔离网络设备、协议栈、端口等)、共享IPC命名空间(隔离进程间通信)。我们可以把Pod理解成豌豆荚,而同一个Pod内的每个容器是一颗颗豌豆。一个Pod内运行多个容器,又叫边车(SideCar)模式。
2. Pod控制器
Pod控制器是Pod启动的一种模板,用来保证在k8s里启动的Pod始终按照人们的预期运行(副本数、生命周期、健康状态检查等)。k8s提供了众多的Pod控制器,常用的控制器有以下几种:
- Deployment
- DaemonSet
- ReplicaSet
- StatefulSet
- Job
- Cronjob
由于k8s内部使用“资源”来定义每一种逻辑概念(或者功能),故每一种“资源”都应该有自己的名称,“资源”有api版本(apiVersion)、类别(kind)、元数据(metadata)、定义清单(spec)、状态(status)等配置信息,而“资源”的名称通常定义在“资源”的元信息里。
4. Namespace-名称空间
随着项目增多、人员增加、集群规模扩大等,需要一种能隔离开k8s内部各种“资源”的方法,这就是名称空间。名称空间可以理解为k8s内部的虚拟集群组。不同的名称空间内的“资源”,名称可以相同,相同名称空间内的同种“资源”,名称不能相同。
合理的使用k8s的名称空间,使得集群管理员能够更好的对交付到k8s里的服务进行分类管理和浏览,查询k8s里特定“资源”要带上相应的名称空间。k8s里默认存在的名称空间有:
default
、kube-system
、kube-public
。5. Service-服务
在k8s里,虽然每个Pod都会被分配一个单独的IP地址,但这个IP地址会随着Pod的销毁而消失,Service就是用来解决这个问题的核心概念。一个Service可以看作一组提供相同服务的Pod的对外访问接口,Service作用于哪些Pod是可以通过标签选择器来定义。
6. Ingress
Ingress是k8s集群里工作在OSI网络参考模型下,第7层的应用对外暴露的接口。Service只能进行L4流量调度,表现形式是ip+Port。Ingress则可以调度不同的业务域、不同URL访问路径的业务流量。
推荐阅读
- 如何配置ssh无密登录
- Linux性能监控
- Docker 容器镜像制作指令详解
- CPU缓存和TLB有什么区别(如何理解?)
- 1的补数和2的补数有什么区别()
- HTML和HTTP之间有什么区别()
- http和https之间有什么区别()
- 互联网和网络有什么区别()
- 优先级倒置和优先级继承之间的区别