前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >kubernetes基础入门知识点

kubernetes基础入门知识点

作者头像
害恶细君
发布2022-11-22 14:10:26
3390
发布2022-11-22 14:10:26
举报

今天正式入门学习kubernetes,也就是大名鼎鼎的k8s,k就是开头字母,s是结尾字母,中间有8个字母,所以简称为k8s。这一小节学习总结一下Kubernetes的基础入门概念,比较简单,理解为主。

一.Kubernetes是什么

Kubernetes是Google开源的一个容器编排引擎,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效。它支持自动化部署、大规模可伸缩、应用容器化管理。在生产环境中部署一个应用程序时,通常要部署该应用的多个实例以便对应用请求进行负载均衡。

在Kubernetes中,我们可以创建多个容器,每个容器里面运行一个应用实例,然后通过内置的负载均衡策略,实现对这一组应用实例的管理、发现、访问,而这些细节都不需要运维人员去进行复杂的手工配置和处理。

二.Kubernetes的特性

☸ 1.自动化上线和回滚

Kubernetes 会分步骤地将针对应用或其配置的更改上线,同时监视应用程序运行状况以确保你不会同时终止所有实例。如果出现问题,Kubernetes 会为你回滚所作更改。

☸ 2.服务发现与负载均衡

无需修改你的应用程序即可使用陌生的服务发现机制。Kubernetes 为容器提供了自己的 IP 地址和一个 DNS 名称,并且可以在它们之间实现负载均衡。关于服务发现和负载均衡的概念我在之前的Spring Cloud总结篇已经讲得非常清楚了,这里不做过多的解释。 服务发现:服务可以通过自动发现的形式找到它所依赖的服务。 负载均衡:如果一个服务启动了多个容器,能够自动实现请求的负载均衡。

☸ 3.存储编排

Kubernetes 允许你自动挂载你选择的存储系统,例如本地存储、公共云提供商等。可以根据容器自身的需求自动创建存储卷。

☸ 4.自动完成装箱计算

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

☸ 5.自我修复

Kubernetes 重新启动失败的容器、替换容器、杀死不响应用户定义的 运行状况检查的容器,并且在准备好服务之前不将其通告给客户端。如果发现新发布的程序版本有问题,可以立即回退到原来的版本。

☸ 6.密钥与配置管理

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

Kubernetes 为你提供了一个可弹性运行分布式系统的框架。 Kubernetes 会满足你的扩展要求、故障转移、部署模式等。Kubernetes 的本质是一组服务器集群,它可以在集群的每个节点上运行特定的程序,来对节点中的容器进行管理。它的目的就是实现资源管理的自动化.

三.Kubernetes的设计架构

1.Kubernetes 组件介绍

一个 kubernetes 集群主要由若干个控制节点(Master Node)和 工作节点(Worker Node)构成,每个节点上都会安装不同的组件。

控制节点(Master Node):集群的控制平面,负责集群的决策。每个集群要求至少有一个 Master 节点来负责集群的管控。

○ API Server:集群操作的唯一入口,接收用户输入的命令,提供认证、授权、API注册和发现等机制。

○ Scheduler:负责集群资源调度,按照预定的调度策略将 Pod 调度到相应的 node 节点上。

○ ControllerManager:负责维护集群的状态,比如程序部署安排、故障检测、自动扩展和滚动更新等。

○ Etcd:负责存储集群中各种资源对象的信息。

工作节点(Worker Node) :集群的数据平面,负责为容器提供运行环境。工作负载节点,由 Master 分配容器到这些 Node 工作节点上,然后 Node 节点上的 Docker 负责容器的运行。

○ Kubelet:负责维护容器的生命周期,即通过控制 Docker ,来创建、更新、销毁容器。

○ KubeProxy:负责提供集群内部的服务发现和负载均衡。

○ Docker:负责节点上容器的各种操作。

2.kubernetes 组件调用关系的应用示例

以部署一个 Nginx 服务来说明 Kubernetes 系统各个组件调用关系:

● ① 首先需要明确,一旦 Kubernetes 环境启动之后,master 和 node 都会将自身的信息存储到etcd数据库中。

● ② 一个Nginx服务的安装请求首先会被发送到 master 节点上的 API Server 组件。

● ③ API Server 组件会调用 Scheduler 组件来决定到底应该把这个服务安装到那个 node 节点上。此时,它会从 etcd 中读取各个 node 节点的信息,然后按照一定的算法进行选择,并将结果告知 API Server 。

● ④ API Server 调用 Controller-Manager 去调用 Node 节点安装 Nginx 服务。

● ⑤ Kubelet 接收到指令后,会通知 Docker ,然后由 Docker 来启动一个 Nginx 的 Pod 。Pod 是 Kubernetes 的最小操作单元,容器必须跑在 Pod 中,一个 Pod 中可以有一个或多个容器。

● ⑥ 一个 Nginx 服务就运行了,如果需要访问 Nginx ,就需要通过 kube-proxy 来对 Pod 产生访问的代理,这样,外界用户就可以访问集群中的 Nginx 服务了。

3.kubernetes 相关的基本概念

● Master:集群控制节点,每个集群要求至少有一个 Master 节点来负责集群的管控。

● Node:工作负载节点,由 Master 分配容器到这些 Node 工作节点上,然后 Node 节点上的 Docker 负责容器的运行。

● Pod:Kubernetes 的最小控制单元,容器都是运行在 Pod 中的,一个 Pod 中可以有一个或多个容器。

● Controller:控制器,通过它来实现对 Pod 的管理,比如启动 Pod 、停止 Pod 、伸缩 Pod 的数量等等。控制器是一类概念,也就是说,不仅仅只有一种控制器,而是很多种控制器的,每一种控制器都有他特殊的应用场景。

● Service:Pod 对外服务的统一入口,可以维护同一类的多个 Pod 。

● Label:标签,用于对 Pod 进行分类,同一类 Pod 会拥有相同的标签。

● NameSpace:命名空间,用来隔离 Pod 的运行环境。

先写到这里,下一节再来学习k8s集群环境的搭建。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-05-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一.Kubernetes是什么
  • 二.Kubernetes的特性
  • 三.Kubernetes的设计架构
    • 1.Kubernetes 组件介绍
      • 2.kubernetes 组件调用关系的应用示例
        • 3.kubernetes 相关的基本概念
        相关产品与服务
        容器服务
        腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档