Docker 与 K8S学习笔记(十三)—— K8S的基本概念

简介: 前面我们学习了Docker的基本知识,从今天开始将进入Kubernetes的内容学习,今天我们将整体梳理下Kubernetes的相关基本概念,为后续的内容学习打基础。 一、什么是Kubernetes Kubernetes源自谷歌内部的容器管理系统Borg,是一个全新的基于容器技术的分布式架构解决方案

Docker 与 K8S学习笔记(十三)—— K8S的基本概念


前面我们学习了Docker的基本知识,从今天开始将进入Kubernetes的内容学习,今天我们将整体梳理下Kubernetes的相关基本概念,为后续的内容学习打基础。

 

一、什么是Kubernetes


Kubernetes源自谷歌内部的容器管理系统Borg,是一个全新的基于容器技术的分布式架构解决方案,并且也是一个一站式的完备的分布式系统开发与支撑平台,

 

二、为什么需要Kubernetes,它能解决什么问题?


前面我们在讲Docker时说过,容器技术可以解决应用程序打包和部署问题,但是在生产环境中,我们不光是把应用部署上去就完事了,我们还需要确保我们的应用能够稳定提供服务,即使挂掉也能快速恢复,当高并发下时能够扩容,低并发下能够缩容以节约资源,试想一下,如果这些工作仅仅靠容器技术它能很好解决吗?这还仅仅是部署一个应用,如果集群中部署大量应用又该如何处理呢?很明显这些工作必须要通过自动化的方式解决,而Kubernetes正是解决这类问题的绝佳方案。Kubernetes具备以下能力:


1、服务发现与负载均衡


Kubernetes 可以使用 DNS 名称或自己的 IP 地址公开容器,如果进入容器的流量很大, Kubernetes 可以负载均衡并分配网络流量,从而使部署稳定。


2、存储编排


Kubernetes 允许你自动挂载你选择的存储系统,例如本地存储、公共云提供商等


3、自动部署与回滚


你可以使用 Kubernetes 描述已部署容器的所需状态,它可以以受控的速率将实际状态更改为期望状态。例如,你可以自动化的方式让 Kubernetes 为你的部署创建新容器, 删除现有容器并将它们的所有资源用于新容器。


4、自动完成装箱计算


Kubernetes 允许你指定每个容器所需 CPU 和内存(RAM)。当容器指定了资源请求时,Kubernetes 可以做出更好的决策来管理容器的资源。


5、自我修复


Kubernetes 重新启动失败的容器、替换容器、杀死不响应用户定义的运行状况检查的容器,并且在准备好服务之前不将其通告给客户端。


6、密钥与配置管理


Kubernetes 允许你存储和管理敏感信息,例如密码、OAuth 令牌和 ssh 密钥。你可以在不重建容器镜像的情况下部署和更新密钥和应用程序配置,也无需在堆栈配置中暴露密钥。

 

三、Kubernetes的架构与基本组件


一个 Kubernetes 集群由一组被称作节点的机器组成。这些节点分为Master节点和Node节点,Master节点也叫控制平面,负责管理集群中的工作节点和 Pod ,为集群提供故障转移和高可用性。Node节点即工作节点,集群具有至少一个工作节点,工作节点负责管理Pod。



1、Master节点


Master节点对集群做出全局决策(比如调度),以及检测和响应集群事件,Master节点上运行如下一组关键进程:


kube-apiserver:提供HTTP Rest接口,是用户对集群所有资源增删改查的入口,也是集群控制入口进程。


kube-scheduler:负责资源调度,即控制新创建的未指定运行节点的Pods在哪个节点上运行。


kube-controller-manager:Kubernets里面所有资源对象的自动化控制中心。


etcd:etcd 是兼具一致性和高可用性的键值数据库,可以作为保存 Kubernetes 所有集群数据的后台数据库。


2、Node节点


Node节点是Kubernetes集群的工作负载节点,每个Node会被Master分配一些工作负载(Docker容器),当Node宕机时,其上所有工作负载会被Master自动转移到其它Node。每个Node节点中都运行着以下关键进程:


kubelet:负责Pod对应的容器的创建、起停操作,同时与Master紧密协作实现集群管理基本功能。


kube-proxy:实现Kubernetes服务与负载均衡机制的重要组件。


Docker Engine:提供容器运行时环境。


OK,以上就是本篇的内容,后续我们将深入进行Kubernetes的学习。


分类: 容器技术

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
16天前
|
监控 NoSQL 时序数据库
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
153 77
|
2天前
|
存储 Kubernetes 开发者
容器化时代的领航者:Docker 和 Kubernetes 云原生时代的黄金搭档
Docker 是一种开源的应用容器引擎,允许开发者将应用程序及其依赖打包成可移植的镜像,并在任何支持 Docker 的平台上运行。其核心概念包括镜像、容器和仓库。镜像是只读的文件系统,容器是镜像的运行实例,仓库用于存储和分发镜像。Kubernetes(k8s)则是容器集群管理系统,提供自动化部署、扩展和维护等功能,支持服务发现、负载均衡、自动伸缩等特性。两者结合使用,可以实现高效的容器化应用管理和运维。Docker 主要用于单主机上的容器管理,而 Kubernetes 则专注于跨多主机的容器编排与调度。尽管 k8s 逐渐减少了对 Docker 作为容器运行时的支持,但 Doc
20 5
容器化时代的领航者:Docker 和 Kubernetes 云原生时代的黄金搭档
|
13天前
|
关系型数据库 MySQL Docker
《docker高级篇(大厂进阶):5.Docker-compose容器编排》包括是什么能干嘛去哪下、Compose核心概念、Compose使用三个步骤、Compose常用命令、Compose编排微服务
《docker高级篇(大厂进阶):5.Docker-compose容器编排》包括是什么能干嘛去哪下、Compose核心概念、Compose使用三个步骤、Compose常用命令、Compose编排微服务
73 24
|
15天前
|
关系型数据库 MySQL Docker
《docker高级篇(大厂进阶):5.Docker-compose容器编排》包括是什么能干嘛去哪下、Compose核心概念、Compose使用三个步骤、Compose常用命令、Compose编排微服务
《docker高级篇(大厂进阶):5.Docker-compose容器编排》包括是什么能干嘛去哪下、Compose核心概念、Compose使用三个步骤、Compose常用命令、Compose编排微服务
91 6
|
1月前
|
关系型数据库 MySQL Java
【Docker最新版教程】一文带你快速入门Docker常见用法,实现容器编排和自动化部署上线项目
Docker快速入门到项目部署,MySQL部署+Nginx部署+docker自定义镜像+docker网络+DockerCompose项目实战一文搞定!
|
26天前
|
运维 Kubernetes Docker
深入理解容器化技术:Docker与Kubernetes的协同工作
深入理解容器化技术:Docker与Kubernetes的协同工作
46 1
|
26天前
|
Kubernetes 开发者 Docker
Docker与Kubernetes的协同工作
Docker与Kubernetes的协同工作
|
1月前
|
前端开发 Java Docker
使用Docker容器化部署Spring Boot应用程序
使用Docker容器化部署Spring Boot应用程序
|
2天前
|
Kubernetes 网络协议 应用服务中间件
Kubernetes Ingress:灵活的集群外部网络访问的利器
《Kubernetes Ingress:集群外部访问的利器-打造灵活的集群网络》介绍了如何通过Ingress实现Kubernetes集群的外部访问。前提条件是已拥有Kubernetes集群并安装了kubectl工具。文章详细讲解了Ingress的基本组成(Ingress Controller和资源对象),选择合适的版本,以及具体的安装步骤,如下载配置文件、部署Nginx Ingress Controller等。此外,还提供了常见问题的解决方案,例如镜像下载失败的应对措施。最后,通过部署示例应用展示了Ingress的实际使用方法。
16 2
|
14天前
|
存储 Kubernetes 关系型数据库
阿里云ACK备份中心,K8s集群业务应用数据的一站式灾备方案
本文源自2024云栖大会苏雅诗的演讲,探讨了K8s集群业务为何需要灾备及其重要性。文中强调了集群与业务高可用配置对稳定性的重要性,并指出人为误操作等风险,建议实施周期性和特定情况下的灾备措施。针对容器化业务,提出了灾备的新特性与需求,包括工作负载为核心、云资源信息的备份,以及有状态应用的数据保护。介绍了ACK推出的备份中心解决方案,支持命名空间、标签、资源类型等维度的备份,并具备存储卷数据保护功能,能够满足GitOps流程企业的特定需求。此外,还详细描述了备份中心的使用流程、控制台展示、灾备难点及解决方案等内容,展示了备份中心如何有效应对K8s集群资源和存储卷数据的灾备挑战。