零基础学kubernetes(k8s)必看教程,带你10分钟快速实战入门k8s
Posted 云原生技术栈
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了零基础学kubernetes(k8s)必看教程,带你10分钟快速实战入门k8s相关的知识,希望对你有一定的参考价值。
一、前言
作为一个工作十余年,拥有比较丰富的计算机网络运维、主机运维、云计算平台运维、自动化运维开发经验的老鸟,我来说说我当初刚接触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文档、视频以及相关的课件笔记,大部分我都看过,感觉还不错,如果需要的话可以评论区告诉我。
如果觉得有帮助的话,可以帮我点赞收藏一下,写的不对或不清楚的地方,也欢迎大家在评论区指出,谢谢!
以上是关于零基础学kubernetes(k8s)必看教程,带你10分钟快速实战入门k8s的主要内容,如果未能解决你的问题,请参考以下文章
云原生 | 从零开始学Kubernetes二使用kubeadm搭建K8S集群
云原生 | 从零开始学Kubernetes三Kubernetes集群管理工具kubectl