k8s入门

了解k8s

k8s是谷歌的Borg的一个开源版本。而Borg是一个基于容器技术的,大规模集群管理系统。

k8s可以节省开发成本。提供了很强的自动化机制,也节省了运维成本。

k8s是一个开放的平台,不拘泥于某种编程语言。也就是说,不管是python还是c编写的服务,都可以映射成为k8s的服务,并通过标准TCP协议进行交互。

k8s是一个分布式的系统。

在k8s中,Service是分布式集群架构的核心。一个Service对象,拥有如下特征:

  • 唯一指定的名称,比如mysql-server
  • 拥有一个虚拟IP地址(ClusterIP)和端口号
  • 能够提供某种远程服务能力
  • 能够将客户端对服务的访问请求,转发到一组容器应用上

Service的服务进程基于Socket通信方式对外提供服务,k8s让我们通过Service(虚拟IP和端口)连接指定的服务。Service一旦创建就不再变化,即使后台某个服务进程发生故障或重新部署到其他机器,都不会影响对服务的正常调用。

k8s设计了Pod对象,将每个服务进程包装到对应的Pod中,使其成为在Pod中运行的容器。为了管理Service和Pod之间的关联关系,k8s会给每个Pod贴上一个标签(Lable),然后给对应的Service定义标签选择器(Label Selector)。

Pod运行在一个被称为节点(Node)的环境中,Node可以是物理机或虚拟机,在一个Node上可以运行多个Pod;在每个Pod中都运行着一个特殊的叫做Pause的容器,其他容器则是业务容器,这些容器共享Pause容器的网格栈和Volume挂载卷。

在集群管理上,K8s将集群中的机器划分为一个Master和一些Node。在Master上运行着集群管理相关的一些进程:kube-apiserver、kube-constroller-manager和kube-scheduler,实现了集群的资源管理、Pod调度、弹性伸缩、安全控制、系统监控和纠错等管理功能,并且这些功能都是自动完成的。Node作为工作节点,上面运行着的才是实际的应用。在Node上,K8s管理的最小单元是Pod。kubelet、kube-proxy等服务进程,负责Pod的创建、启动、监控、重启和销毁,以及实现负载均衡。

在k8s集群中,只需要为需要扩容的Service所关联的Pod创建一个Deployment对象,就可以解决传统IT运维中棘手的服务扩容问题。Deployment对象包含以下属性:

  • 目标Pod的定义
  • 目标Pod所需要运行的副本数量(Replicas
  • 要监控的目标Pod的标签

k8s会根据Deployment对象创建符合要求的Pod,并且通过Deployment中定义的Label筛选出对应的Pod实例并实时监控其状态和数量。如果数量少于邓毅的副本数量,就会根据Deployment中定义的Pod模板创建一个新的Pod,然后将此Pod调度到合适的Node上启动运行,直到Pod实例数量达到预定目标。这就大大简化了服务扩容流程,只需要修改Deployment中的副本数量即可。

为什么使用K8s

  • IT行业是技术驱动的行业,K8s是比较新的技术,很多大厂和一些大型项目都在用
  • 使用k8s可以让小团队开发大型复杂的系统
  • 方便使用微服务架构
  • 方便将系统搬迁到公有云上
  • 弹性扩容机制很适合应对突发的高流量
  • 超强的扩容能力,可以节约大量人力物力成本从而提升竞争力
相关推荐
Thneonl3 小时前
照着 CKS 教材做实验,把 apiserver 干瘫了 7 分钟
安全·kubernetes
名字还没想好☜5 小时前
Kubernetes 用 kubectl port-forward 和 proxy 调试集群内服务:两者区别、断连自动重连与为什么别用在生产
运维·docker·kubernetes
武汉唯众智创14 小时前
云计算实训室建设指南(2026版):从技能大赛赛项标准反推架构、课程与落地路径
云原生·kubernetes·云计算·云计算实训室·云计算教学平台·职业技能大赛
wdfk_prog15 小时前
ROS教程:01 搭建 ROS1 Noetic Docker 开发环境
运维·缓存·docker·容器·ros
szephyr16 小时前
Docker + Compose 实战:把本地项目一键搬到云服务器,附完整配置
运维·docker·容器·部署·云服务器
wdfk_prog16 小时前
ros教程02:创建 catkin Workspace、Package 与第一个 ROS1 C++ Node
运维·缓存·docker·容器·ros
名字还没想好☜20 小时前
Docker 网络实战:bridge/host/none/自定义网络、容器互通与端口映射踩坑
运维·docker·kubernetes
探索云原生1 天前
KubeClipper 1.7.0 发布:Operation 优化与 Kubernetes 1.37 支持
linux·docker·云原生·kubernetes·go
fengkai45451 天前
八、Docker详解1-3
运维·docker·容器
MrSYJ1 天前
Veth pair 细讲
docker·云原生·容器