欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

第1课k8s概述

时间:2023-07-20
目录

1 什么是k8s2 为什么要用k8s3 k8s的构成

3.1 Control Plane

3.1.1 kube-api server3.1.2 kube-controller-manager3.1.3 cloud-controller-manager3.1.4 kube-scheduler3.1.5 etcd 3.2 Node

3.2.1 kubelet3.2.2 kube-proxy3.2.3 Container Runtime 3.3 内部插件3.4 外部工具 1 什么是k8s

Kubernetes是Google在2014年开源的一个容器集群管理系统, Kubernetes简称K8s。
Kubernetes用于容器化应用程序的部署, 扩展和管理,目标是让部署容器化应用简单高效。

2 为什么要用k8s

初学k8s,很多人都可能有这个疑问:有了docker,为什么还要用k8s?
答案是,企业需求:为提高业务并发和高可用,会使用多台服务器,因此会面向这些问题:

多容器跨主机如何提供服务?多容器如何分布式部署到节点?多主机多容器怎么升级?怎么高效管理这些容器?

为了解决上述问题,自然而然地产生了容器编排工具。先后有:Kubernetes、Swarm、Mesos Marathon。历经数年的竞争,现在Kubernetes已经成为事实的赢家,成为大家的首选。

现如今,Kubernetes 是为数不多的能够成长为基础技术的技术之一,就像 Linux、OS 虚拟化和 Git一样成为各自领域的佼佼者。简单来说,Kubernetes是如今所有云应用程序开发机构能做出的最安全的投资,如果运用得当,它可以帮助大幅提升开发和交付的速度以及质量。

3 k8s的构成

k8s是谷歌公司开源的产品,其架构借鉴了谷歌内部先前的容器编排系统Borg的设计。主要由 Master 和 Node 共同组成。我们需要注意 Master 和 Node 两个概念。其中 Master 是控制节点,部署着 Kubernetes 的控制面(Control Plane),负责整个集群的管理和控制。Node 为计算节点,或者叫作工作负载节点,每个 Node 上都会运行一些负载容器。

3.1 Control Plane 3.1.1 kube-api server

API 服务器,集群的统一入口,各组件协调者,以RESTfulAPI提供接口服务,所有对象资源的增删改查和监听操作都交给APIServer处理后再提交etcd进行存储。

3.1.2 kube-controller-manager

控制管理器,处理集群中常规后台任务,一个资源对应一个控制器,而ControllerManager就是负责管理这些控制器的。

3.1.3 cloud-controller-manager

云控制器管理器,是指嵌入特定云的控制逻辑的 控制平面组件。 云控制器管理器使得你可以将你的集群连接到云提供商的 API 之上, 并将与该云平台交互的组件同与你的集群交互的组件分离开来。

3.1.4 kube-scheduler

调度器,根据调度算法为新创建的Pod选择一个Node节点,可以任意部署,可以部署在同一个节点上,也可以部署在不同的节点上。

3.1.5 etcd

分布式键值存储系统。用于保存集群状态数据,比如Pod、Service等对象信息。
garbage collection

3.2 Node 3.2.1 kubelet

kubelet是Master在Node节点上的Agent,管理本机运行容器的生命周期,比如创建容器、Pod挂载数据卷、下载secret、获取容器和节点状态等工作。

3.2.2 kube-proxy

在Node节点上实现Pod网络代理,维护网络规则和负载均衡工作。

3.2.3 Container Runtime

容器运行环境是负责运行容器的软件。Kubernetes 支持多个容器运行环境: Docker、 containerd、cri-o,podman以及任何实现 容器运行环境接口的容器软件.

3.3 内部插件

我们常常在k8s集群内部署Dashboard、DNS服务器等组件以提高集群的可用性。

3.4 外部工具

Kubectl是一个最常用的k8s命令行工具管理。我们常用它与k8s打交道,作为操作k8s的入口。

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。