零基础学kubernetes(k8s)必看教程,带你10分钟快速实战入门k8s

article/2025/6/21 9:57:56

一、前言

作为一个工作十余年,拥有比较丰富的计算机网络运维、主机运维、云计算平台运维、自动化运维开发经验的老鸟,我来说说我当初刚接触Kubernetes时的一些感受以及学习技巧。

刚开始学习k8s时,我觉得挺难的,一头雾水,买了一本《Kubernetes权威指南》,真的很厚。我觉得作为应用开发人员的学习路线,不要想着一口气看完k8s的所有概念,要逐步学习,要看完这么厚的书,没有实战也很懵的。

我觉得比较合适的学习路线应该是:应用开发人员只需要先学很少的几个 Kubernetes 关键概念,比如 Pod、Service 和 Deployment,然后直接把精力放在如何把自己的应用部署上去,并着手研究部署到 Kubernetes 之后的各类场景化需求,再反过来去逐个学习 Kubernetes 的各项功能特性。


 

二、什么是K8S

Kubernetes也称为K8S,其中8是代表中间“ubernete”的8个字符,是Google在2014年开源的一个容器编排引擎,用于自动化容器化应用程序的部署、规划、扩展和管理,它将组成应用程序的容器分组为逻辑单元,以便于管理和发现,用于管理云平台中多个主机上的容器化的应用,Kubernetes 的目标是让部署容器化的应用简单并且高效,很多细节都不需要运维人员去进行复杂的手工配置和处理;

通过Kubernetes你可以:

  • 快速部署应用
  • 快速扩展应用
  • 无缝对接新的应用功能
  • 节省资源,优化硬件资源的使用

三、Kubernetes的特点

  • 可移植:支持公有云,私有云,混合云,多重云(multi-cloud)
  • 可扩展:模块化,插件化,可挂载,可组合
  • 自动化:自动部署,自动重启,自动复制,自动伸缩/扩展

四、Kubernetes可以做什么?

使用Web服务,用户希望应用程序能够7*24小时全天运行,开发人员希望每天多次部署新的应用版本。通过应用容器化可以实现这些目标,使应用简单、快捷的方式更新和发布,也能实现热更新、迁移等操作。使用Kubernetes能确保程序在任何时间、任何地方运行,还能扩展更多有需求的工具/资源。Kubernetes积累了Google在容器化应用业务方面的经验,以及社区成员的实践,是能在生产环境使用的开源平台。

五、学习K8S需要掌握的基础知识

5.1、k8s系统架构

从系统架构来看,k8s分为2种节点:

  • Master 控制节点,做为指挥官;
  • Node 工作节点,干活的

5.1.1、Master节点组成

  • Etcd:Kubernetes集群的数据库,所有持久化的状态信息存储在Etcd中
  • API Server :提供k8s API接口,主要处理Rest操作以及更新Etcd中的对象,是所有资源增删改查的唯一入口。
  • Scheduler:资源调度器,根据etcd里的节点资源状态决定将Pod绑定到哪个Node上
  • Controller Manager,负责保障pod的健康存在,资源对象的自动化控制中心,Kubernetes集群有很多控制器。
  • API相当于命令,沟通API server

5.1.2、Node节点的组成

  • Docker Engine:负责节点容器的管理工作,最终创建出来的是一个Docker容器。
  • kubelet:安装在Node上的代理服务,用来管理Pods以及容器/镜像/Volume等,实现对集群对节点的管理。
  • kube-proxy:安装在Node上的网络代理服务,提供网络代理以及负载均衡,实现与Service通讯。

5.2、k8s逻辑架构

从逻辑架构上看,k8s分为Pod、Controller、Service 。

5.2.1、POD

  • POD是k8s的最小单位
  • POD的IP地址是随机的,删除POD会改变IP
  • POD都有一个根容器
  • 一个POD内可以由一个或多个容器组成
  • 一个POD内的容器共享根容器的网络命名空间
  • 一个POD内的网络地址由根容器提供

5.2.2、Controller

用来管理POD。控制器的种类有很多:

  • RC Replication Controller:控制POD有多个副本
  • RS ReplicaSet:RC控制的升级版
  • Deployment:推荐使用,功能更强大,包含了RS控制器
  • DaemonSet:保证所有的Node上有且只有一个Pod在运行
  • StatefulSet:有状态的应用,为Pod提供唯一的标识,它可以保证部署和scale的顺序

5.2.3、Service

理解三个不同的ip:NodeIP、CluterIP、POD IP。

六、K8S技能图谱

Kubernetes 已经成为企业应用发 布 的 事 实 标 准 , 掌握Kubernetes 应用就掌握了企业应用发布的基础设施,由于其部署应用的便利性、可靠性、可扩展性等优点让更多的企业所青睐;

6.1、Kubernetes 应用基础

本阶段重点掌握Kubernetes 集 群 部 署 、Kubernetes 集群中核心概念理解及应用等。

  • Kubernetes 集群部署
  • Kubernetes 集群核心概念 Namespace
  • Kubernetes 集群核心概念 Pod
  • Kubernetes 集群核心概念 Controller
  • Kubernetes 集群核心概念 Service

6.2、Kubernetes 服务暴露

Kubernetes 做为企业应用发布平台,有助于企业生产系统的快速部署,部署后需要让Kubernetes 集群之外的用户访问,本阶段使用 Ingress Nginx及 Traefik 实现 Kubernes 集群内服务暴露给集群之外的用户访问。

  • Kubernetes 服务暴露 Ingress Nginx
  • Kubernetes 服务暴露 Traefik

6.3、Kubernetes 容器镜像仓库管理方案

Kubernetes 集群容器镜像仓库管理方案有助于提升容器镜像应用效率;有助于为企业内部应用发布提供可靠的保障;更有助于为 Kubernetes 集群安全运行提供了有力保障。

  • Kubernetes 容器镜像仓库管理方案 Harbor

6.4、Kubernetes 安全机制

Kubernetes 集群安全是应用部署环节中重要一环,通过对集群用户创建、角色绑定等实现Kubernetes 集群运行安全。

6.5、Kubernetes 网络解决方案

Kubernetes 集群网络解决方案可通过 Flannel、Calico、Canel等多种方案实现,本阶段重点掌握Flannel及Calico网络解决方 案 , 借 此 为 企 业 级 生 产Kubernetes 集群提供集群网络应用及故障排除方法等。

6.6、Kubernetes 项目上云部署

Kubernetes 做为新型企业 IT 基础设施平台,已经成为企业开发人员、运维人员、测试人员、安全人员、技术解决方案人员等应用发布平台的首选;把企业开发的应用能够正确在Kubernetes 集群之上运行起来,也是 Kubernetes 集群高水平应用的一种体现。

  • Kubernetes 集群 JAVA 项目上云部署方案
  • Kubernetes 集群 Python 项目上云部署方案
  • Kubernetes 集群 Golang 项目上云部署方案
  • Kubernetes 集群 PHP 项目上云部署方案
  • Kubernetes 集群 Node.js 项目上云部署方案

6.7、Kubernetes 集群及 Pod 监控方案

Kubernetes 集群做为新型IT基础设施平台,对其进行有效监控是有必要的,可以通过监控了解集群状态及集群资源使用情况,以便更好地管理以Kubernetes 为 IT 基础设施的资源调度平台。

  • Kubernetes 集群监控方案
  • Kubernetes 集群中 Pod 监控方案

6.8、Kubernetes 集群存储解决方案

Kubernetes 集群存储解决方案可以为在集群中运行的应用提供数据存储能力,无论是手动创建 PV 方式还是通过动态供给方式都可以为数据提供持久化的存储。通过学习本阶段可掌握 GlusterFS 及 Ceph 存储解决方案应用及运行维护、二开调用等。

  • Kubernetes 集群存储解决方案 NFS
  • Kubernetes 集群存储解决方案 GlusterFS
  • Kubernetes 集群存储解决方案 Ceph

6.9、Kubernetes 云 原生中间件上云部署

企业级中间件是架构设计中用 于 解 耦 的 工 具 , 如 何 在Kubernetes 集群中部署或应用这些中间件呢?我们可以把云原生的中间件直接上云应用,通过本阶段学习,可掌握zookeeper 、 kafka 、 rocketmq 等各类中间件产品上云部署。

  • 企业级云原生中间件上云部署案例 zookeeper
  • 企业级云原生中间件上云部署案例 kafka
  • 企业级云原生中间件上云部署案例 rocketmq

6.10、基 于 Kubernetes集群 PaaS 云平台

Kubernetes 集群由于部署应用的便利性、敏捷性被人们所接受,时至今日在众多厂商的推动下其已经演变为 PaaS 云平台 , 本 阶 段 主 要 介 绍Openshift、 Rancher 、Kubesphere 三 种 基 于 Kubernetes 集群的 PaaS 云平台。

  • PaaS 云平台 Openshift
  • PaaS 云平台 Rancher
  • PaaS 云平台 Kubesphere

七、总结

Kubernetes 做为新型企业 IT 基础设施平台,已经成为企业开发人员、运维人员、测试人员、安全人员、技术解决方案人员等应用发布平台的首选;把企业 开 发 的 应 用 能 够 正 确 在Kubernetes 集群之上运行起来,也是 Kubernetes 集群高水平应用的一种体现;

如果你想通过自学的方式掌握Kubernetes,我可以把自己整理的教程笔记分享给你,里面不仅有k8s,还有Docker、DevOps、KubeSphere等内容,包含电子书、面试题、pdf文档、视频以及相关的课件笔记,大部分我都看过,感觉还不错,如果需要的话可以评论区告诉我。

如果觉得有帮助的话,可以帮我点赞收藏一下,写的不对或不清楚的地方,也欢迎大家在评论区指出,谢谢!


http://chatgpt.dhexx.cn/article/WrcKmiT3.shtml

相关文章

python input函数换行_python input函数换行_python_input函数

Python raw_input() 函数 Python内置函数 python raw_input()用来获取控制台的输入。 raw_input()将所有输入作为字符串看待,返回字符串类型。注意:input()和 raw_input()这两个函 Python input和print函数 - 箬笠蓑衣 258x256 - 5KB - PNG python row函数_row函数_python row_…

Python基础之input函数和eval函数

Python基础之&#xff08;二&#xff09; 一、 input()函数-数据输入 input()函数的功能&#xff1a;显示用户输入的值 input()函数可以包含一些提示性文字 通过使用input()函数&#xff0c;可以使用户主动输入的内容变成程序中的字符串变量的值 <字符串变量> input(&l…

函数input()讲解

目录 上次我们讲解了函数print&#xff0c;今天我们来讲它的“好兄弟”input&#xff01; 讲解 1.input与变量 2.input与提示语 3.input与print 例子 上次我们讲解了函数print&#xff0c;今天我们来讲它的“好兄弟”input&#xff01; 讲解 1.input与变量 input在pyth…

Python input函数

input()函数 import timeprint(亲爱的同学&#xff1a;) time.sleep(1)print(我们愉快地通知您&#xff0c;您已获准在霍格沃茨魔法学校就读。) time.sleep(2)print(随信附上所需书籍及装备一览。) time.sleep(1)print(学期定于九月一日开始。) time.sleep(1)print(鉴于您对魔…

python中input函数最简单详细的了解

一、input&#xff08;&#xff09;函数 有了 输入 魔法&#xff0c;程序就有了对话的功能。计算机根据你的回答进行对应的处理&#xff0c;好像能听懂你的话一样。 你通过 Python 代码向计算机提供指令&#xff0c;计算机执行指令&#xff0c;然后通过 input() 函数把问题显…

input函数和int函数的使用

第一&#xff0c;input函数接受一个标准输入数据&#xff0c;返回str类型 第二&#xff0c;int函数可以把str强制转换为整形 第三&#xff0c;int(input()) ps&#xff1a;最近搞深度学习的视频&#xff0c;但是依然需要实操

python中input函数的使用

input() 函数接受一个标准输入数据&#xff0c;返回为 string 类型。 input() # 单个输入使用input ninput() print(n) print(type(n))ninput("输入&#xff1a;") print(n) print(type(n))ninput() print(n) print(type(n))input().split() split()方法通过指定分…

python编程 input输入函数

作者简介&#xff1a;一名在校计算机学生、每天分享Python的学习经验、和学习笔记。 座右铭&#xff1a;低头赶路&#xff0c;敬事如仪 个人主页&#xff1a;网络豆的主页​​​​​​ 目录 前言 一.输入与输出 1.input输入函数 2注意点① 3注意点② 二.input输入函…

Python中的input()函数

选择题 请问在Python 3.x中&#xff0c;从键盘输入数字2之后&#xff0c;下列代码的输出结果是&#xff1f; a input("请输入年龄&#xff1a;") print(a 1) A a 1 B 2 1 C 3 D 抛出异常 问题解析 1.在Python中&#xff0c;使用内置函数input()可以接收用户的键盘…

Python基础 input函数

输入函数input&#xff08;&#xff09; 作用&#xff1a;接收来自用户的输入 返回值类型&#xff1a;输入值的类型为str 值的存储&#xff1a;使用 对输入的值进行存储 input函数的基本使用 present input (你想要什么礼物呢&#xff1f;) present --> 变量 --> …

php中input函数,input函数的用法是什么?

input函数的用法是什么? input函数的用法是: 1.input()函数 在Python3中,input()函数接受一个标准输入数据,返回为string类型。 注意:在Python3中,raw_input()和input()进行了整合,去除了raw_input(),仅保留了input()函数,其接收任意任性输入。将所有输入默认为字符串处…

【Python】input()函数用法小结

一&#xff1a;input&#xff08;&#xff09;函数的输入机制 我们编写的大部分程序&#xff0c;都需要读取输入并对其进行处理&#xff0c;而基本的输入操作是从键盘键入数据。Python从键盘键入数据&#xff0c;大多使用其内置的input&#xff08;&#xff09;函数。但是&…

python中input函数使用

1、input函数作用&#xff1a; 接收来自用户的输入 2、返回值类型 输入值的类型为str 3、值的存储 使用对输入的值进行存储 例&#xff1a; presentinput(‘大圣想要什么礼物呢?’) print (present) 运行之后会出现&#xff1a;大圣想要什么礼物呢?&#xff0c;我们给…

input()函数及其各种用法

都知道C语言利用scanf()输入&#xff0c;C利用cin输入&#xff0c;且它们都会遇到空格和换行会自动停止&#xff1b;但python里面的input()输入就比较特别点了&#xff0c;在输入的时候只以换行结束&#xff0c;也会许多注意点和规范。 Ⅰ. input()函数的基本使用&#xff1a;…

python中input()函数详解

1.input&#xff08;&#xff09;函数赋值后数据在python内部的类型。 if __name__"__main__":ainput()print(type(a))binput()print(type(b))cabprint(c)print(type(c))输入及输出&#xff1a; 从结果可以看出&#xff0c;我们通过input输入的数据在python中被默认…

python的input函数用法

目录 1.input的语法及用法 &#xff08;1&#xff09;语法&#xff1a;input() &#xff08;2&#xff09;用法&#xff1a;运行代码之后可自定义输入目标数据&#xff0c;返回结果为str&#xff08;字符串&#xff09;类型。 2.实例 &#xff08;1&#xff09;简单用法&a…

python之input()函数的使用——在终端输入想要的值,小白也能学会的python之路

目录 前言 一、input初级使用 二、input进阶使用&#xff1a;和if else搭配 三、try...except...捕获异常 前言 漫漫python路开始&#xff0c;作为一个程序员&#xff0c;要写的了前端&#xff0c;做的了后端&#xff0c;写的了sql&#xff0c;懂的了部署&#xff0c;最近…

Python学习记录——4.input()函数

文章目录 1.input()函数2.综合复习3.练习3.1 哈利波特的宠物3.2 罗恩的减肥计划 1.input()函数 input()函数的使用 示例如下&#xff1a; input(请在以下四个选项【格兰芬多&#xff1b;斯莱特林&#xff1b;拉文克劳&#xff1b;赫奇帕奇】中&#xff0c;输入你想去的学院名…

input函数

天启的战书 input()函数的使用input()函数结果的赋值 3.input()函数的数据类型 4.input()函数结果的强制转换 将屏幕调整成全屏模式&#xff1a;快捷键&#xff1a;windows系统&#xff1a;F11&#xff08;或FnF11)&#xff1b;mac系统&#xff1a;ControlCommandF。 input()…

input()函数

input()函数是最常用的输入函数。 该函数用来获取用户的输入&#xff0c;用户输入完内容以后&#xff0c;点击回车程序才会向下继续执行&#xff0c;输入完成以后&#xff0c;其所输入的内容会以返回值的形式返回。 input()函数中可以设置一个字符串作为参数&#xff0c;这个…