Kubernetes 核心概念|学习笔记

简介: 快速学习 Kubernetes 核心概念

开发者学堂课程【Kubernetes 入门  Kubernetes 核心概念】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/51/detail/1009


Kubernetes 核心概念

内容介绍

一、什么是 Kubernetes

二、Kubernetes 的架构

三、Kubernetes 的核心概念与 API

四、尝试一下 Kubernetes 吧

 

一、什么是 Kubernetes

Kubernetes 是一个工业级容器编排平台

Kubernetes 源于希腊语,意为“舵手”或“飞行员”

k8s是通过将8个字母“ubernete”替换为8而导出的缩写

1、自动化的容器编排平台

部署

弹性

管理

2、核心功能

l 服务发现与负载均衡

l 自动发布与回滚

l 容器自动装箱

l 配置与密文管理

l 存储编排

l 批量执行

l 自动容器恢复

l 水平伸缩

3、Kubernetes -调度

image.png

可以把用户提交的容器放到 Kubernetes 集群的某一台节点上去,Kubernetes 的调度器是执行这项能力的组件,可观察被调度容器的大小和规格,然后在集群中找到一台空闲机器进行放置操作。

4、Kubernetes -自动恢复

节点健康检查的功能,可以检测集群中所有的宿主机,当宿主机本身出现故障或者软件出现故障时,节点健康检查会自动发现,Kubernetes 会将进行失败的节点进行迁移,迁移到正在健康运行的宿主机上,来完成集群内容器的自动恢复

image.png

5、Kubernetes -水平伸缩

检测业务上所承担的负载,如果这个业务本身的 CPU 利用率过高或者响应时间过长,可以对业务进行扩容。通过负载均衡,来提高响应时间。

image.png

 

二、Kubernetes 的架构

Master作为中央管控节点,会与 NODE 进行一个连接,把希望状态或者想执行的命令下发给 Master,Master 会把这些命令或者状态下发给相应节点,这是最终的执行。

image.png

1、Kubernetes 的架构一Master

image.png

四个主要组件:

l API Server:处理 API 操 Kubernetes 中所有组件会与 API Server 进行连接,组件与组件一般不进行独立的连接,都依赖 API Server 进行消息传送

l Controller:控制器,用于完成对集群状态的管理

l Scheduler:调度器,完成调度的操作

l etcd:分布式的存储系统,API Server 所需要的源信息都被放在其中

2、Kubernetes 的架构一 Node

一个 Pod 运行一个或者多个容器,真正去运行这些 Pod 的组件是 Kubeletes,每个应用负载会以 pod 的运行状态提交到组件中,向节点下发信息

image.png

3、Kubernetes 的架构–例子

用户可以通过 UI 或者 CRI 提交一个 Pod 给 Kubelet 进行一个部署,而 pod 首先会通过 UI 或者 CRI 提交给 Kubernetes,下一步 API Server 会把信息写入存储系统 ,Scheduler 得到信息有一个 pod 需要调度,Scheduler 会根据其进行决策

image.png

 

三、Kubernetes 的核心概念与 API

1、核心概念-Pod

l 最小的调度以及资源单元

l 由一个或者多个容器组成

l 定义容器运行的方式(Command、环境变量等)

l 提供给容器共享的运行环境(网络、进程空间)

2、核心概念-Volume

l 声明在 Pod 中的容器可访问的文件目录

l 可以被挂载在 Pod 中一个(或者多个)容器的指定路径下

l 支持多种后端存储的抽象

l 本地存储、分布式存储、云存储…

3、核心概念-Deployment

l 定义一组 Pod 的副本数目、版本等

l 通过控制器(Controller)维持 Pod 的数目

l 自动恢复失败的 Pod

l 通过控制器以指定的策略控制版本

l 滚动升级、重新生成、回滚等

4、核心概念-Service

l 提供访问一个或多个Pod 实例的稳定访问地址

l 支持多种访问方式实现

l ClusterlP

l NodePort

l LoadBalancer

5、核心概念一Namespaces

l 一个集群内部的逻辑隔离机制(鉴权、资源额度)

l 每个资源都属于一个 Namespace

l 同一个 Namespace 中的资源命名唯一

l 不同 Namespace 中的资源可重名

6、APl 一基础知识

l HTTP +JSON/YAML

l kubectl

l Ul

l curl

l /api/v1/namespaces/$NAMESPACE/pods/$NAME

image.png

7、APl -Label

l 一组 Key:Value

l 可以被 selector 所查询

l select color=red

l 资源集合的默认表达形式

l 例如 Service 对应的一组 Pod

 

四、尝试一下 Kubernetes 吧

1、安装 Minikube

l 安装 VirtualBox

https : / / www .virtualbox.org / wiki/ Downloads

l 安装 MiniKube(中国版)

https :/ / yq.aliyun.com/ articles/ 221687

l 启动 MiniKube

minikube start --vm-driver virtualbox

2、尝试一些命令吧!

1.提交一个 ngnix deployment

kubectl apply -f https: / / k8s.io/examples/application/deployment.yaml

2.升级 ngnix deployment

kubectl apply -f https: / /k8s.io/examples/application/deployment-update.yaml

3.扩容 ngnix deployment

kubectl apply -f https: / / k8s.io/examples/application/deployment-scale.yaml

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
存储 Kubernetes 调度
了解pod和pod的生命周期-这一篇文章就够了
了解pod和pod的生命周期-这一篇文章就够了
了解pod和pod的生命周期-这一篇文章就够了
|
Kubernetes 负载均衡 API
kubernetes技术分享-可用于企业内部培训
kubernetes技术分享-可用于企业内部培训
|
存储 运维 Kubernetes
Docker+Kubernetes/K8s+Jenkins视频资料【干货分享】
Docker+Kubernetes/K8s+Jenkins视频资料【干货分享】
Docker+Kubernetes/K8s+Jenkins视频资料【干货分享】
|
Java 关系型数据库 MySQL
【已解决】SpringBoot 启动报错:Failed to configure a DataSource: ‘url‘ attribute is not specified and no emb
【已解决】SpringBoot 启动报错:Failed to configure a DataSource: ‘url‘ attribute is not specified and no emb
7377 1
|
容器 Kubernetes Perl
从零开始入门 K8s| 阿里技术专家详解 K8s 核心概念
作者| 阿里巴巴资深技术专家、CNCF 9个 TCO 之一 李响 一、什么是 Kubernetes Kubernetes,从官方网站上可以看到,它是一个工业级的容器编排平台。Kubernetes 这个单词是希腊语,它的中文翻译是“舵手”或者“飞行员”。
19011 1
|
关系型数据库 MySQL
MySql 计算两个日期的时间差函数
MySql计算两个日期的时间差函数 MySql计算两个日期的时间差函数TIMESTAMPDIFF用法: 语法: TIMESTAMPDIFF(interval,datetime_expr1,datetime_expr2) 说明: 返回日期或日期时间表达式datetime_expr1 和datetime_expr2the 之间的整数差。
12743 1
|
虚拟化 Docker 容器
Minikube - Kubernetes本地实验环境
为了方便大家本地开发和体验Kubernetes,社区提供了可以在本机部署的Minikube。本文介绍利用阿里云的镜像地址在Windows/Mac/Linux上来部署和配置Minikube
240048 71
Minikube - Kubernetes本地实验环境
|
数据库 测试技术 Java
阿里技术专家详解DDD系列 第二弹 - 应用架构
应用架构,指软件系统中固定不变的代码结构、设计模式、规范和组件间的通信方式。在应用开发中架构之所以是最重要的第一步,因为一个好的架构能让系统安全、稳定、快速迭代。但是今天我们在做业务研发时,更多会关注一些宏观的架构,而忽略了应用内部的架构设计,希望能通过案例分析和重构,推演出一套高质量的DDD架构。
57843 24
阿里技术专家详解DDD系列 第二弹 - 应用架构
|
Docker 容器 Kubernetes
15分钟在笔记本上搭建 Kubernetes + Istio开发环境
11月13~15日,KubeCon 上海大会召开,云原生是这个秋天最火热的技术。很多同学来问如何上手 Kubernetes和Istio 服务网格开发。本文将帮助你利用Docker CE桌面版,15分钟在笔记本上从零搭建 Kubernetes + Istio开发环境,开启云原生之旅。
37123 0
|
弹性计算 运维 Kubernetes
【0907 - 0911直播导视 | PPT 下载】开源系列直播开播啦、手把手带你 5 步上手 Kubernetes!
本周技术专场给你带来开源系列直播开播啦、手把手带你 5 步上手 Kubernetes多场技术公开课待你解锁!
1849 0