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

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
简介: 前面我们学习了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搭建和管理企业级网站应用
相关文章
|
11天前
|
Kubernetes Java Docker
利用(K8S)配合Docker部署jar包
通过Docker打包并部署到Kubernetes(K8S)集群的过程。首先,通过SpringBoot生成jar包,接着在K8S环境中创建并编辑Dockerfile文件。随后构建Docker镜像,并将其推送到镜像仓库。最后,通过一系列kubectl命令(如get pods、get svc、logs等),展示了如何在K8S中管理应用,包括查看Pod状态、服务信息、Pod日志以及重启Pod等操作。
59 2
|
9天前
|
Ubuntu Linux pouch
Docker容器管理工具
文章介绍了Docker容器管理工具,以及早期使用的LXC容器管理工具,包括它们的安装、使用和相关技术特点。
38 10
Docker容器管理工具
|
6天前
|
Cloud Native 持续交付 Docker
云原生技术实践:Docker容器化部署教程
【9月更文挑战第4天】本文将引导你了解如何利用Docker这一云原生技术的核心工具,实现应用的容器化部署。文章不仅提供了详细的步骤和代码示例,还深入探讨了云原生技术背后的哲学,帮助你理解为何容器化在现代软件开发中变得如此重要,并指导你如何在实际操作中运用这些知识。
|
13天前
|
Prometheus Kubernetes 网络协议
k8s学习笔记之CoreDNS
k8s学习笔记之CoreDNS
|
11天前
|
Kubernetes Cloud Native 开发者
探索云原生技术:从Docker到Kubernetes的旅程
【8月更文挑战第31天】云原生技术正在改变软件开发、部署和运维的方式。本文将带你了解云原生的核心概念,并通过实际代码示例,展示如何使用Docker容器化应用,并进一步通过Kubernetes进行集群管理。我们将一起构建一个简单的微服务架构,体验云原生带来的高效与便捷。
|
11天前
|
Kubernetes Cloud Native 云计算
云原生入门:从Docker到Kubernetes的旅程
【8月更文挑战第31天】 在数字化转型的浪潮中,云原生技术成为推动现代软件开发的关键力量。本文将引导读者理解云原生的基本概念,通过Docker和Kubernetes的实际应用示例,展示如何在云平台上部署和管理容器化应用。我们将一起探索服务编排、持续集成和微服务架构的实践之路,旨在为初学者揭开云原生技术的神秘面纱,并激发对这一前沿领域的深入探索。
|
11天前
|
运维 Kubernetes Cloud Native
云原生技术入门:Kubernetes和Docker的协同工作
【8月更文挑战第31天】 在云原生的世界里,容器技术是基石。本文将带你了解如何通过Kubernetes和Docker这两个强大的工具,搭建起你的云原生应用架构。我们将一起探索它们如何相互配合,提升开发与运维的效率。准备好了吗?让我们启航,探索云原生的奥秘!
|
11天前
|
Kubernetes Cloud Native 开发者
云原生入门:从Docker到Kubernetes的旅程
【8月更文挑战第31天】在数字化浪潮中,云原生技术如同一艘航向未来的船,承载着企业转型的梦想。本文将带领读者从Docker容器的基础出发,一路驶向Kubernetes的广阔海域。通过浅显易懂的语言和实用的代码示例,我们将探索云原生的核心概念、架构设计以及如何在实际项目中应用这些技术。无论你是初学者还是有一定经验的开发者,这篇文章都将为你提供一次宝贵的学习之旅。让我们一起启航,发现云原生的魅力!
|
11天前
|
Cloud Native 云计算 开发者
云原生技术实践:Docker容器化部署示例
【8月更文挑战第31天】本文通过深入浅出的方式,介绍了如何在云计算时代利用Docker容器技术实现应用的快速部署和高效管理。文章不仅解释了Docker的基本概念和优势,还提供了详细的操作步骤和代码示例,帮助初学者轻松入门。让我们一起探索云原生的世界,解锁应用部署的新姿势!
|
12天前
|
Kubernetes Cloud Native Docker
云原生入门:Docker容器化部署实战
【8月更文挑战第31天】在数字化浪潮中,云原生技术成为企业转型的助推器。本文通过Docker容器化部署的实践案例,引导读者从零基础到掌握基础的云原生应用部署技能。我们将一起探索Docker的魅力,学习如何将一个应用容器化,并在云平台上运行起来,为深入云原生世界打下坚实基础。