
一、K8s 中枢见地(一一拆解,从基础到中枢)先明确一个前提:K8s 的中枢所在是「自动化照顾容器化期骗」,悉数见地都是围绕这个所在打算的。咱们从最基础的“集群”开动,一一考验。
C 1. 集群(Cluster)这是 K8s 的“根基”,亦然最基础的见地。集群是由一组节点(Node)构成的皆集,用于调解运行容器化期骗 ,不错把它邻接为一个“大机房”,里面有好多台办事器(节点),悉数容器化期骗都运行在这个“大机房”里。
一个完竣的 K8s 集群分为两个中枢部分,不可偏废:
放肆平面(Control Plane):绝顶于“大机房的中控室”,精采照顾和调遣悉数这个词集群,决定哪个容器跑在哪个节点上、监控容器景色、处理故障等,是集群的“大脑”。使命节点(Worker Node):绝顶于“大机房 #后端 #Kubernetes里的办事器”,是践诺运行容器的地方,接受中控室的指示,膨胀容器的创建、启动、罢手等操作。补充:K8s 集群不撑持单点运行(出产环境),放肆平面时时会部署多个节点,幸免单点故障;使命节点不错阐明业务需求横向扩展,节点越多,能运行的容器就越多。
2. 节点(Node)节点是集群的“最小硬件单位”,本体上是一台物理机(办事器)或捏造机,是容器运行的载体。不管是放肆平面节点已经使命节点,都需要装配 K8s 的中枢组件,才调加入集群。
使命节点上必须装配的3个中枢组件(重心):
Kubelet:节点的“代理东谈主”,精采和放肆平面通讯,接受放肆平面的指示(比如“启动一个容器”),同期监控容器和节点的景色,把景色上报给放肆平面,确保容器按照要求运行。容器运行时(Container Runtime):用于运行容器的软件,绝顶于“容器的发动机”,K8s撑持多种容器运行时,比如Docker、containerd等(当今主流是containerd,Docker已迟缓被淘汰)。Kube-proxy:节点的“汇集代理”,精采处理节点上的汇集通讯,终了Pod之间、Pod与外部的汇集互通,同期提供陋劣的负载平衡功能。陋劣说:节点是“容器的宿主”,莫得节点,容器就莫得运行的地方;而 Kubelet、容器运行时、Kube-proxy,是节点能“干活”的必备用具。
3. Pod这是 K8s 中「最小的可部署、可照顾单位」,亦然外行最容易耻辱的见地—— Pod 不是容器,而是容器的“包装器”,一个 Pod 不错包含一个或多个细巧相关的容器 。
举个例子:一个 Web 期骗,需要一个运行 Web 办事的容器,还需要一个运行日记汇集的容器,这两个容器必须细偶然营(日记汇集容器要汇集 Web 容器的日记),就不错把它们打包在湮灭个 Pod 里。
Pod 的中枢特色(必记):
分享资源:湮灭个Pod里的悉数容器,分享湮灭个汇集定名空间(即湮灭个IP地址)和存储卷,容器之间不错通过localhost径直通讯,无需荒芜竖立汇集。生命周期少顷:Pod是“一次性”的,一朝被删除、故障或节点宕机,Pod会径直灭亡,不会自动归附(需要借助放肆器照顾)。不可径直扩容:不行径直给一个Pod加多副本,要扩容只可通过放肆器创建多个交流的Pod。补充:K8s 中,悉数容器都必须运行在 Pod 里,莫得“脱离 Pod 的容器”——这是 K8s 的中枢打算原则之一。
C 4. 放肆器(Controller)前边说过,Pod 的生命周期很少顷,一朝故障就会灭亡,而放肆器的作用等于「保险 Pod 的运业绩态得当预期」,绝顶于 Pod 的“管家”,自动处理 Pod 的创建、删除、扩容、故障归附等操作。
K8s 有多种放肆器,重心掌捏4种最常用的(外行必懂),一一讲明:
(1)Deployment:最常用的无景色放肆器用于照顾「无景色期骗」(比如 Web 办事、API 接口),是外行最常使用的放肆器,中枢功能是:
确保指定数目的Pod副本运行(比如指定3个副本,放肆器会自动看护3个Pod,少了就补,多了就删);撑持转移更新(比如升级期骗版块时,先启动新Pod,再删除旧Pod,不中断办事);撑持回滚(淌若升级失败,能快速回滚到上一个悠闲版块)。示例:通过 Deployment 创建3个 Web 办事 Pod,即使其中1个 Pod 故障,放肆器会自动再创建1个,确保恒久有3个 Pod 在运行。
(2)StatefulSet:有景色期骗放肆器用于照顾「有景色期骗」(比如数据库、Redis 集群、ZooKeeper),这类期骗的特色是:需要固定的汇集标记(IP、主机名)、固定的存储(数据不行丢失)、有序的启动/罢手。
StatefulSet 的中枢上风:给每个 Pod 分派固定的称呼和汇集标记,即使 Pod 重建,称呼和 IP 也不会变;同期绑定固定的存储卷,确保数据不丢失。
持重:无景色期骗和有景色期骗的中枢区别——无景色期骗不需要保存数据,多个 Pod 统调解致,不错应付替换;有景色期骗需要保存数据,每个 Pod 有我方的独到标记,不行应付替换。
(3)DaemonSet:全局守护放肆器中枢功能:确保集群中的每个节点(或得当要求的节点)上,都运行一个交流的 Pod 副本 ,常用于部署“集群级别的世界办事”。
常用场景:日记汇集(比如 Fluentd、Logstash)、监控代理(比如 Prometheus Node Exporter)、汇集插件(比如 Calico)——这些办事需要在每个节点上都运行,才调粉饰悉数这个词集群。
(4)Job/CronJob:任务类放肆器用于运行「一次性任务」或「定时任务」,区别于前边的“历久运行办事”:
Job:一次性任务,比如数据备份、批量处理(比如批量导入数据),任务膨胀完成后,Pod会自动隔断,不会链接运行;CronJob:定时任务,近似Linux的crontab,比如每天凌晨3点膨胀数据备份,按照指定的手艺周期相似膨胀任务。C 5. 办事(Service)前边说过,Pod 的生命周期少顷,一朝重建,IP 地址会发生变化——淌若其他 Pod 需要考核这个 Pod,IP 变了就无法通讯,Service 等于为了治理这个问题而打算的。
陋劣说:Service 是 Pod 的“固定考核进口”,它界说了一组 Pod 的逻辑皆集,为这组 Pod 提供一个固定的 IP 地址和考核端口 ,不管 Pod 怎样重建、IP 怎样变化,其他 Pod 或外部办事,都不错通过 Service 的固定地址考核到所在 Pod。
Service 的中枢旨趣:通过“标签遴聘器”(Label Selector)匹配 Pod,惟有 Pod 的标签和 Service 的标签一致,就会被纳入 Service 的照顾鸿沟;当 Pod 的 IP 变化时,Service 会自动更新里面的 Pod 列表,确保考核不中断。
外行必懂的4种 Service 类型:
ClusterIP(默许):只可在集群里面考核,外部无法考核,适书册群里面Pod之间的通讯(比如Web Pod考核数据库Pod);NodePort:在每个节点上绽开一个固定端口,外部不错通过“节点IP+节点端口”考核Service,得当测试环境(比如腹地调试);LoadBalancer:适用于云环境(比如阿里云、腾讯云),会自动创建云厂商的负载平衡器,外部通过负载平衡器的IP考核Service,得当出产环境;ExternalName:将Service映射到外部域名(比如映射到www.baidu.com),适书册群里面Pod考核外部办事。6. 标签(Label)与标签遴聘器(Label Selector)这是 K8s 中「用于分组和筛选资源」的核神思制,绝顶于给资源(Pod、Service、Deployment 等)贴“标签”,再通过“标签遴聘器”筛选出需要的资源。
举个例子:给3个 Web Pod 贴上标签「app: web」,抢庄牛牛app2026世界杯中国官方下载给2个数据库 Pod 贴上标签「app: db」;然后创建一个 Service,通过标签遴聘器「app: web」,就能精确匹配到3个 Web Pod,终了对 Web Pod 的调解考核。
中枢特色:
标签是键值对(比如app: web、env: test、version: v1),不错应付界说,生动分组;一个资源不错贴多个标签,一个标签遴聘器不错匹配多个标签;K8s的好多中枢功能都依赖标签遴聘器(比如Service匹配Pod、Deployment照顾Pod)。7. 存储卷(Volume)容器的存储是“临时的”——淌若容器被删除,容器内的数据会丢失(比如数据库容器,删除后数据就没了),Volume 等于为了治理「容器数据持久化」而打算的。
陋劣说:Volume 是一个“分享存储目次”,不错挂载到 Pod 的容器中,容器不错读写这个目次里的数据,即使容器被删除,Volume 里的数据也不会丢失 (Volume 的生命周期和 Pod 无关,由 K8s 调解照顾)。
外行常用的2种 Volume 类型:
EmptyDir:临时存储,和Pod的生命周期一致,Pod删除,EmptyDir里的数据也会删除,得当临时缓存数据(比如容器之间分享临时文献);PersistentVolume(PV)+ PersistentVolumeClaim(PVC):持久化存储,PV是集群级别的存储资源(比如云盘、腹地磁盘),PVC是Pod对存储资源的“肯求”——Pod通过PVC肯求存储,PVC绑定PV,终了数据持久化(得当数据库、Redis等需要保存数据的期骗)。C 8. 定名空间(Namespace)用于「隔断集群资源」,绝顶于给集群永诀“不同的房间”,每个房间里有我方的 Pod、Service、Deployment 等资源,房间之间的资源互相隔断,不会互相影响。
中枢作用:治理多团队、多环境的资源隔断问题——比如开荒环境、测试环境、出产环境,分别创建不同的定名空间(dev、test、prod),每个环境的资源放在对应的定名空间里,幸免开荒环境的 Pod 影响出产环境。
补充:K8s 默许有3个定名空间:default(默许定名空间,未指定定名空间的资源都会放在这里)、kube-system(K8s 中枢组件所在的定名空间)、kube-public(世界资源定名空间)。
C 9. 竖立与密钥(ConfigMap、Secret)用于照顾 Pod 的竖立信息,幸免把竖立硬编码到容器镜像中(比如数据库地址、端口、密钥等),方便竖立的修改和照顾。
两者的区别(重心):
ConfigMap:用于存储「非敏锐竖立」,比如数据库地址、端口、期骗的竖立参数(比如日记级别),数据以明体裁式存储;Secret:用于存储「敏锐竖立」,比如数据库密码、API密钥、文凭等,数据会进行Base64编码(持重:Base64是编码,不是加密,出产环境需要合营加密插件使用)。使用神志:将 ConfigMap/Secret 挂载到 Pod 的容器中,容器不错径直读取里面的竖立,修改 ConfigMap/Secret 后,Pod 无需重启(部分场景需要重启)就能加载新竖立。
二、K8s 常用用具(外行必备,擢升扫尾)掌捏了中枢见地后,光靠号召行操作 K8s 会很繁琐,底下先容几款外行必备的常用用具,粉饰“集群部署、广大操作、可视化、监控”等场景,帮你快速上手 K8s。
C 1. kubectl:K8s 号召行用具(必备)这是 K8s 的官方号召行用具,是操作 K8s 集群的“全能用具”,悉数集群操作都不错通过 kubectl 号召完成(比如创建 Pod、寻查 Pod 景色、删除 Service 等)。
外行必记的常用号召(高频):
kubectl get pods:寻查刻下定名空间的悉数Pod景色;kubectl get services:寻查刻下定名空间的悉数Service;kubectl get deployment:寻查刻下定名空间的悉数Deployment;kubectl create -f xxx.yaml:通过yaml文献创建资源(Pod、Service等);kubectl apply -f xxx.yaml:创建或更新资源(保举使用,比create更生动);kubectl delete pod :删除指定Pod;kubectl logs :寻查Pod的日记(排查故障常用);kubectl exec -it -- /bin/bash:插足Pod的容器里面(调试常用)。补充:kubectl 的竖立文献默许在~/.kube/config,里面存储了集群的考核地址、文凭等信息,惟有竖立好这个文献,就能通过 kubectl 操作费力集群。
2. Minikube:腹地K8s集群用具(外行初学首选)关于外行而言,搭建一个实在的 K8s 集群(多节点)比拟复杂,而 Minikube 不错在腹地快速搭建一个「单节点的 K8s 集群」,用于学习、测试 K8s 功能,无需复杂竖立。
中枢特色:
轻量:占用资源少,撑持Windows、Mac、Linux系统;方便:一键启动、罢手、删除集群,比如minikube start就能启动集群;功能完竣:撑持K8s的悉数中枢功能,能模拟实在集群的大部分场景。使用场景:外行学习 K8s 见地、测试 yaml 竖立文献、调试陋劣的容器化期骗。
3. Helm:K8s 包照顾用具(简化部署)K8s 中,部署一个期骗往往需要创建多个资源(Pod、Service、Deployment、ConfigMap 等),每个资源都需要写 yaml 文献,操作繁琐。Helm 的作用等于「将多个资源打包成一个“包”(Chart)」,一键部署、升级、回滚期骗,绝顶于 K8s 的“yum”或“npm”。
中枢上风:
简化部署:一个Chart包含悉数期骗所需的资源,一键部署(helm install);版块照顾:撑持Chart的版块放肆,升级、回滚期骗只需指定版块;分享复用:社区有普遍现成的Chart(比如MySQL、Redis、Nginx),不错径直下载使用,无需我方写yaml。常用号召:helm install(部署期骗)、helm upgrade(升级期骗)、helm rollback(回滚期骗)、helm repo add(添加 Chart 仓库)。
4. Dashboard:K8s 可视化照顾用具(直不雅)kubectl 号召行操作不够直不雅,而 Dashboard 是 K8s 的官方可视化用具,通过 Web 界面不错直不雅地寻查集群资源(Pod、Service、Deployment 等)的景色,还能通过界面创建、删除、剪辑资源,得当外行快速了解集群景色。
中枢功能:
寻查集群悉数资源的景色(运业绩态、资源占用等);通过界面创建Pod、Service、Deployment等资源;寻查Pod日记、插足容器里面、膨胀号召;照顾定名空间、竖立、密钥等资源。补充:Dashboard 默许分歧外显现,需要通过 kubectl port-forward 号召转发端口,才调考核 Web 界面。
5. 其他常用用具(按需遴聘)kube-ps1:K8s号召行领导符用具,能在末端娇傲刻下所在的K8s集群和定名空间,幸免操作错集群;k9s:末端版的K8s可视化用具,比kubectl更直不雅,操作更方便,得当习尚末端操作的开荒者;Prometheus + Grafana:K8s监控用具,Prometheus汇集集群和期骗的监控数据,Grafana可视化监控计算(比如CPU、内存占用、Pod运业绩态),出产环境必备;Kompose:Docker Compose转K8s用具,淌若你习尚用Docker Compose部署期骗,不错通过Kompose将docker-compose.yml文献转变成K8s的yaml文献,快速迁徙到K8s集群。三、外行避坑指南(重心提醒)不要耻辱Pod和容器:Pod是容器的包装器,一个Pod不错有多个容器,容器不行脱离Pod运行;不要径直操作Pod:出产环境中,不要径直创建、删除Pod,要通过Deployment、StatefulSet等放肆器照顾Pod,不然Pod故障后无法自动归附;标签和标签遴聘器要对应:Service要通过标签遴聘器匹配Pod,淌若标签不匹配,Service无法考核到Pod;区分无景色和有景色期骗:无景色期骗用Deployment,有景色期骗用StatefulSet,不要用错放肆器;外行先从Minikube动手:不要一开动就搭建多节点集群,先用Minikube纯属见地和操作,再迟缓过渡到实在集群。四、追念K8s 的中枢见地看似宽广,但惟有收拢“自动化照顾容器”这个中枢所在,一一拆解、邻接每个见地的作用和合营关系,就能快速成立学问框架——从集群、节点,到 Pod、放肆器、Service,再到标签、存储、竖立,每个见地都有其明确的用途,为德不终紊。
而常用用具则是擢升扫尾的环节:kubectl 是基础,Minikube 得当初学,Helm 简化部署,Dashboard 直不雅可视化,按需遴遴聘具,能让你的 K8s 操作更高效。
关于外行而言,提议先通过 Minikube 搭建腹地集群,联结 kubectl 号召,亲手操作每个见地(比如创建 Pod、部署 Deployment、竖立 Service),再尝试用 Helm 部署一个陋劣的期骗,迟缓积蓄实战教化。
临了,以为本文对你有匡助的话,接待点赞、储藏、转发抢庄牛牛2026世界杯(中国)IOS/安卓官方下载,你的撑持是我更新的能源!
亚搏体育中国官方网站入口
备案号: