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

一、前言

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

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

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


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

 

二、什么是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节点组成

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

  • 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。

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

六、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文档、视频以及相关的课件笔记,大部分我都看过,感觉还不错,如果需要的话可以评论区告诉我。

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

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

你可能感兴趣的:(kubernetes,运维,运维开发)