K8s 概念及组件

这篇具有很好参考价值的文章主要介绍了K8s 概念及组件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

K8s 的全称为Kubernetes,是一种开源的容器编排平台,用于自动化部署以及扩展和管理容器化的应用程序,它提供了一种容器编排和管理的方式,可以帮助开发人员更轻松的管理容器化的应用程序,并且提供了一种跨多个主机的自动化部署和管理机制

K8s 概念及组件,kubernetes,容器,云原生

作用:

        用于自动部署、扩展和管理“容器化(containerized)应用程序”的开源系统。
可以理解成 K8S 是负责自动化运维管理多个容器化程序(比如 Docker)的集群,是一个生态极其丰富的容器编排框架工具。

​官网:https://kubernetes.io

github:https://github.com/kubernetes/kubernets​

为什么要用K8s

        传统的后端部署办法:把程序包(包括可执行二进制文件、配置文件等)放到服务器上,接着运行启动脚本把程序跑起来,同时启动守护脚本定期检查程序运行状态、必要的话重新拉起程序。
        如果服务的请求量上来,已部署的服务响应不过来怎么办?传统的做法往往是,如果请求量、内存、CPU超过阈值做了告警,运维人员马上再加几台服务器,部署好服务之后,接入负载均衡来分担已有服务的压力

        这样问题就出现了:从监控告警到部署服务,中间需要人力介入!那么,有没有办法自动完成服务的部署、更新、卸载和扩容、缩容呢?
        而这就是 K8S 要做的事情:自动化运维管理容器化(Docker)程序。

K8s 的目标是让部署容器化应用简单高效。

K8s 解决了裸跑Docker 的若干痛点:
  1. 单机使用,无法有效集群

  2. 随着容器数量的上升,管理成本梦升

  3. 没有有效的容灾、白愈机制

  4. 没有预设编排模板,无法实现快速、大规模容器调度

  5. 没有统一的配置管理中心工具

  6. 没有容器生命周期的管理工具

  7. 没有图形化运维管理工具

 

K8s特性

  • 弹性伸缩

保证应用业务高峰并发时的高可用性,业务低峰时回收资源,最小成本运行服务

  • 自我修复

节点故障时重新启动失败的容器,替换和重新部署,杀死健康检查失败的容器,未准备好之前不会处理客户端请求,保证线上服务不中断

  • 服务发现和负载均衡

k8s为多个容器提供一个统一访问入口【内部IP地址和一个DNS名称】,负载均衡关联所有的容器,使得用户无需考虑容器ip问题

  • 自动发布(默认滚动发布模式)和回滚

一次更新一个或部分 pod ,如果更新过程中出现问题,将回滚更改,确保升级不影响业务

  • 集中化配置管理和密钥管理

管理机密数据和应用程序配置,而不需要把敏感数据暴露在镜像里,包括用户密码、私钥、公钥

  • 存储编排,支持外挂存储并对外挂存储资源进行编排

挂载外部存储系统,无论是来自本地存储,公有云(如AWS),还是网络存储(如 NFS、Glusterfs、Ceph)都作为集群资源的一部分使用,极大提高存储使用灵活性

  • 任务批量处理运行

提供一次性任务,定时任务,满足批量数据处理和分析的场景

 

K8s集群架构和组件

K8s是属于主从设备模型【Master 和 Slave 架构】

  • Master节点负责集群的调度、管理和运维,

  • slave节点是集群中的运算工作负载节点。在K8s 中,主节点一般被称为Master节点,而从节点则被称为worker Node节点,每个Node 都会被Master分配一些工作负载

Master 组件

  • kube-apiserver  

所有访问的统一入口,资源请求或调用操作都是通过kube-apiserver提供的接口进行,所有对象资源的增删改查和监听操作都交给API Server处理后再提交给Etcd 存储。

  • kube-controller-manager(控制器)

  负责根据预设模板创建pod,维持pod等资源副本期望数目【创建删除维护pod】

  • kube-scheduler(调度器)

   负责调度 pod 通过预选、优选策略,选择合适的 node节点分配 pod    【调度算法:62种】

  • etcd:配置存储中心

     分布式键值对数据库,负责存储 k8s 集群的重要信息(持久化)
     go语言开发的 使用raft 一致性的算法  集群需要三台或以上奇数台组成
     【端口】
     2379:对外为客户端提供通讯
     2380:服务器之间内部通讯

Node组件

  • kubelet:

  在K8s集群中,在每个Node (又称 Worker Node)上都会启动一个kubelet 服务进程。每个kubelet进程都会在 API server 中注册信息,定期向 master 汇报节点资源的使用情况

  • kube-proxy: 

  在node 节点上实现 pod 的网络代理,维护网络规则和四层负载均衡器工作,负责写入规则到 iptables 或 ipvs 实现服务映射访问

  • docker 或 rocket:

  容器引擎,运行容器,负责本机的容器创建和管理工作

K8s 概念及组件,kubernetes,容器,云原生 K8s 概念及组件,kubernetes,容器,云原生

Pod

Pod是 Kubernetes 创建或部署的最小/最简单的基本单位,一个 Pod 代表集群上正在运行的一个进程。
可以把 Pod 理解成豌豆荚,而同一 Pod 内的每个容器是一颗颗豌豆。

一个 Pod 由一个或多个容器组成,Pod 中容器共享网络、存储和计算资源,在同一台 Docker 主机上运行。
一个 Pod 里可以运行多个容器,又叫边车模式(SideCar)。而在生产环境中一般都是单个容器或者具有强关联互补的多个容器组成一个 Pod。

同一个 Pod 之间的容器可以通过 localhost 互相访问,并且可以挂载 Pod 内所有的数据卷;但是不同的 Pod 之间的容器不能用 localhost 访问,也不能挂载其他 Pod 的数据卷。

Pod 控制器

Pod 启动的一种模版,用来保证在K8S里启动的 Pod 应始终按照用户的预期运行(副本数、生命周期、健康状态检查等)。

K8S 内提供了众多的 Pod 控制器,常用的有以下几种:

  • Deployment:无状态应用部署
  • Statefulset:有状态应用部署
  • ReplicaSet:确保预期的 Pod 副本数量,用于管理和控制Pod,受控于 Deployment
  • DaemonSet:确保所有节点运行同一类 Pod,保证每个节点上都有一个此类 pod 运行 
  • Job:一次性任务
  • Cronjob:周期性计划性任务

控制器有五大类:

标签选择器:
  • 标签选择器可以用来选择一组具有相同的标签的 Pod,service,RC,deployment 和 RS,使用标签选择器可以轻松的管理部署应用程序和其他资源

service:
  • service 是通过标签选择器关联具有对应 Label(标签)的Pod,再把相关 Pod的 IP 加入到自己的 endpoints 当中,service再根据 endpoints 里的IP 进行转发

ingress:
  • ingress是一种 API对象,用于管理 K8s集群中入口流量,它为我们提供了一种统一的方式来管理不同服务方式的路由规则和负载均衡

name:
  • 通常是指资源对象的名称

namespace:
  • K8s中的 namespace 是一种虚拟化的技术,它将一个物理的 K8s 集群划分成多个虚拟集群,每个虚拟机群都有自己的资源和对象,不同的虚拟机群之间相互隔离

CFSSL用来为etcd提供TLS 证书,它支持签三种类型的证书:

  1. client.证书,服务端连接客户端时携带的证书,用于客户端验证服务端身份,如l kube-apiserver访问 etcd; 

  2. server 证书,客户端连接服务端时携带的证书,用于服务端验证客户端身份,如 etcd对外提供服务;

  3. peer 证书,相互之间连接时使用的证书,如 etcd节点之间进行验证和通信。

          这里全部都使用同一套证书认证。文章来源地址https://www.toymoban.com/news/detail-722530.html

cfssl:证书签发的工具命令
cfssljson:将cfssl生成的证书(json格式)变为文件承载式证书
cfssl-certinfo:验证证书的信息
cfssl-certinfo -cert <证书名称>     #查看证书的信息

到了这里,关于K8s 概念及组件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【云原生-K8s】Kubernetes安全组件CIS基准kube-beach安装及使用

    为了保证集群以及容器应用的安全,Kubernetes 提供了多种安全机制,限制容器的行为,减少容器和集群的攻击面,保证整个系统的安全性。 互联网安全中心(CIS,Center for Internet Security),是一个非盈利组织,致力为互联网提供免费的安全防御解决方案 官网 :https://www.cisecu

    2024年02月06日
    浏览(78)
  • K8s 概念及组件

    K8s 的全称为Kubernetes,是一种开源的容器编排平台,用于自动化部署以及扩展和管理容器化的应用程序,它提供了一种容器编排和管理的方式,可以帮助开发人员更轻松的管理容器化的应用程序,并且提供了一种跨多个主机的自动化部署和管理机制 作用:         用于自动部

    2024年02月07日
    浏览(65)
  • K8s(Kubernetes)学习(三):pod概念及相关操作

    摘取官网: https://kubernetes.io/zh-cn/docs/concepts/workloads/pods/#working-with-pods 1.1 简介 Pod 是可以在 Kubernetes 中 创建和管理的、最小的可部署的计算单元 。 Pod (就像在鲸鱼荚或者豌豆荚中) 是一组(一个或多个)容器 ; 这些容器共享存储、网络、以及怎样运行这些容器的声明。 P

    2024年02月13日
    浏览(94)
  • 云原生Kubernetes:K8S集群实现容器运行时迁移(docker → containerd) 与 版本升级(v1.23.14 → v1.24.1)

    目录 一、理论 1.K8S集群升级 2.环境 3.升级策略 4.master1节点迁移容器运行时(docker → containerd)  5.master2节点迁移容器运行时(docker → containerd)  6.node1节点容器运行时迁移(docker → containerd)  7.升级集群计划(v1.23.14 → v1.24.1) 8.升级master1节点版本(v1.24.1) 9.升级master2节点版本

    2024年02月03日
    浏览(69)
  • 云上攻防-云原生篇&;Kubernetes&;K8s安全&;API&;Kubelet未授权访问&;容器执行

    curl -XPOST -k “https://192.168.139.132:10250/run///” -d “cmd=id” 执行的命令是test03容器里的命令,需要进行容器逃逸。 1、攻击8080端口:API Server(Master)未授权访问 旧版本的k8s的API Server默认会开启两个端口:8080和6443。 6443是安全端口,安全端口使用TLS加密;但是8080端口无需认证,

    2024年04月22日
    浏览(77)
  • 云原生Kubernetes:K8S概述

    目录 一、理论 1.云原生 2.K8S 3.k8s集群架构与组件 4.K8S网络 二、总结 (1)概念 云原生是一种基于容器、微服务和自动化运维的软件开发和部署方法。它可以使应用程序更加高效、可靠和可扩展,适用于各种不同的云平台。 如果要更直接通俗的来解释下上面的概念,云原生更

    2024年02月10日
    浏览(55)
  • 【云原生 • Kubernetes】认识 k8s、k8s 架构、核心概念点介绍

    目录 一、Kubernetes 简介 二、Kubernetes 架构 三、Kunbernetes 有哪些核心概念? 1. 集群 Cluster 2. 容器 Container 3. POD 4. 副本集 ReplicaSet 5. 服务 service 6. 发布 Deployment 7. ConfigMap/Secret 8. DaemonSet 9. 核心概念总结 Kubernetes 简称 k8s,是支持云原生部署的一个平台,起源于谷歌。谷歌早在十几

    2024年02月03日
    浏览(199)
  • 【云原生 • Kubernetes】认识 k8s 网络、外部网络访问 k8s 内部服务

    目录 一、认识 Kubernetes 网络 二、外部网络如何访问 k8s 内部服务 1. NodePort 2. Load Balancer 3. Ingress Kubernetes 最底层的网络为节点网络,用来保证 k8s 集群的节点(master 和 worker、worker 节点之间)能够做正常的 IP 寻址和通讯。 Kubernetes 第二层网络就是 Pod 网络,构建于节点网络之上

    2024年01月16日
    浏览(72)
  • 云原生_kubernetes(k8s)介绍

    目录 一、应用部署方式演变 二、k8s介绍 三、k8s的组件 四、k8s中的概念 五、k8s资源管理方式 1、命令式对象管理 2、命令式对象配置 3、声明式对象配置 在部署应用程序的方式上,主要经历了三个时代: 1 、物理机部署: 互联网早期,会直接将应用程序部署在物理机上 优点

    2023年04月13日
    浏览(60)
  • 云原生Kubernetes:K8S存储卷

    目录 一、理论 1.存储卷 2.emptyDir 存储卷 3.hostPath卷 4.NFS共享存储 5.PVC 和 PV 6.静态创建PV 7.动态创建PV 二、实验  1.emptyDir 存储卷 2.hostPath卷 3.NFS共享存储 4.静态创建PV 5.动态创建PV 三、问题 1.生成pod一直pending 2.shoumount -e未显示共享目录 3.静态创建pv 报错 4.使用 Deployment 来创建

    2024年02月07日
    浏览(74)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包