糖呀糖啦~Pleiades
首页
归档
关于
友链
切换模式
返回顶部
首页
技术实践
书斋絮语
晴天札记
糖呀糖啦~Pleiades
首页
技术实践
书斋絮语
晴天札记
首页
归档
关于
友链
【Kubernetes】Kubernetes 基本概念
技术实践
·
02-25
糖呀糖 xyz
# Kubernetes 基本概念 使用 Kubernetes 提供的解决方案,可以节省不少于 30% 的开发成本,可以讲精力更集中于业务本身。 Kubernetes 提供强大的自动化机制,所以后期的运维难度 和 运维成本 会大幅度降低 Kubernetes 不局限于恩和一种语言,没有限定任何编程接口,所以不论是使用 Java、Go、C++ 还是 Python 都可以被映射为 Kubernetes 的 Service,并通过标准的 TCP 通信协议进行交互 Kubernetes 平台对现有的编程语言、编程框架、中间件没有任何的侵入性,所以现有的系统也很容易改造升级并迁移到 Kubernetes 平台上。 Kubernetes 是一个完备的分布式系统支撑平台。Kubernetes 具有完备的集群管理能力,包括多层次的安全防护和准入机制、多租户应用支撑能力、透明的服务注册和服务发现机制、内建的智能负载均衡器、强大的故障发现和自我修复能力、服务滚动升级和在线扩容能力、可扩展的资源自动调度机制、多里力度的资源配额管理能力。 Kubernetes 提供完善的管理工具,涵盖 开发、部署测试、运维监控在内的各个环节 Kubernetes 是一个全新的基于容器技术的分布式架构解决方案,是一个一站式的完备分布式系统开发和支撑平台。 Service 是分布式集群架构的核心,一个 Service 对象拥有如下关键特征: - 拥有唯一制定的名称,如 mysql-server - 拥有一个虚拟 IP(Cluster IP、Service IP 或 VIP)和 端口号 - 能够提供某种远程服务能力 - 被映射到提供这种服务能力的一组容器应用上 Service 服务进程目前都基于 Socket 通信方式对外提供服务,比如 Redis、Memcache、MySQL、Web Server,或者是 实现了某个具体业务的特定 TCP Server 进程。 虽然 一个 Service 通常由多个相关的服务进程提供服务,每个服务进程都有一个独立的 Endpoint(IP + Port)访问点,但 Kubernetes 能够让我们通过 Service(虚拟 Cluster IP + Service Port)连接到指定的 Service Kubernetes 的负载均衡和故障恢复机制,不管后端有多少服务进程,或某个服务进程发生故障被重新部署到其他机器,都不会影响对服务的正常调用。 Service 本身 一旦创建就不会变化,意味着,不用为 Kubernetes 集群中服务的 IP 地址变化而头疼。 容器可以提供强大的隔离能力,所以有必要把为 Service 提供服务的这组进程放入容器中进行隔离。 所以 Kubernetes 设计了 Pod 对象,将每个服务进程都包装到相应的 Pod 中,使其成为在 Pod 中运行的一个 容器(Container)。 Pod 运行在一个被称为 节点 (Node)的环境中,Node 既可以是物理机,也可以是虚拟机。 通常一个节点上运行几百个 Pod 其次,在每一个 Pod 中都会运行着一个特殊的 Pause 容器,其他容器是业务容器。这些业务容器共享 Pause 容器的网络栈和 Volume 挂载卷,他们之间的通信和数据交换更为高效 这一特性可以被充分利用:将一组密切相关的服务进程 放入同一个 Pod 中 Service 与 Pod 的关联关系:  !!注意!!:并不是每个 Pod 和它里面运行的容器 都能被映射到一个 Service 上,只有提供服务(无论对内还是对外)的那组 Pod 才会被映射为一个服务。 # Kubernetes 集群 Kubernetes 集群中的机器划分为 一个 Master 和 若干个 Node。 Master 上运行着集群管理相关的一组 **进程** kube-apiserver、kube-controller-manager、kube-scheduler 这些进程实现了整个集群的 资源管理、Pod 调度、弹性伸缩、安全控制、系统监控、纠错等管理功能,且是 **自动完成** 的 Node 是集群中的工作节点,运行真正的应用程序,在 Node 上 Kubernetes 管理的最小单元是 **Pod** 在 Node 上运行着 Kubernetes 的 kubelet、kube-proxy 服务进程,这些服务进程负责 Pod 的创建、启动、监控、重启、销毁 以及 实现软件模式的 负载均衡器。 # 服务扩容 服务升级 服务的扩容涉及:资源分配(选择那个节点进行扩容)、实例部署、启动等环节。 在 Kubernetes 集群中,只需为 需要扩容的 Service 关联的 Pod 创建一个 RC(Replication Controller,副本控制器),服务扩容以至服务升级等问题都可以解决 一个 Replication Controller 定义文件包括以下 3 个关键信息: - 目标 Pod 的定义 - 目标 Pod 需要运行的副本数量(Replicas) - 要监控的目标 Pod 的标签 在创建好 RC(系统将自动创建好 Pod)后,Kubernetes 会通过在 RC 中定义的 Label 筛选出对应的 Pod 实例,并实时监控其状态和数量: 如果实例数量少于定义的副本数量,则会根据在 RC 中定义的 Pod 模板 创建一个新的 Pod,然后将此 Pod 调度到合适的 Node 上启动运行,直到 Pod 实例的数量达到预定目标 以上过程完全自动化 服务扩容只需要修改 RC 中的副本数量即可 # References - 《Kubernetes 权威指南:从 Docker 到 Kubernetes 实践全接触(第 4 版)》
Kubernetes
取消回复
提交评论
tl.s
02-25
回复
讲的很清楚,语言组织很好 🦆🦆🦆🦆🦆🦆🦆🦆🦆🦆
糖呀糖 xyz
我们谈论生活,讨论技术,借由文字,抵达心灵。
热门文章
【Kubernetes】第一个实例 - Java Web 应用
Obsidian 迁移全记录(又名:纯小白的闭坑指南)
使用宝塔面板对网站、数据库等进行定时备份到腾讯云 COS 对象存储
2025 年
在细雨中呼喊,在困顿中挣扎
Ubuntu 22.04 server 安装教程
Debian 12.2 安装方法
最新评论
tl.s: 很实用 🦆🦆
tl.s: 绘图很清晰,图示质量很高
tl.s: 写的很详细,赞👍
Deep Router: 大佬好强!!!
tls: 写的很详细,很清晰!
tl.s: 讲的很清楚,语言组织很好 🦆🦆🦆🦆🦆🦆🦆🦆🦆🦆
tl.s: 好棒🦆🦆🦆🦆🦆🦆🦆🦆🦆🦆🦆
热门标签
Kubernetes
Ubuntu
Linux
Python3
生活
2025
Debian
技术实践
在细雨中呼喊
读书笔记
笔记软件
Obsidian
2024
openEuler
Kuboard
粤ICP备2024349207号
讲的很清楚,语言组织很好 🦆🦆🦆🦆🦆🦆🦆🦆🦆🦆