如何入门k8s?
发布网友
发布时间:2022-04-20 17:07
我来回答
共1个回答
热心网友
时间:2023-09-18 00:15
k8s是谷歌开源的容器集群管理系统,是谷歌多年大规模容器管理技术Borg的开源版本,主要功能包括:
从功能上讲Kubernetes是一种综合的基于容器构建分布式系统的基础架构环境,它不仅能够实现基本的拉取用户镜像、运行容器,还可以提供路由网关、水平扩展、监控、备份、灾难恢复等一系列运维能力,而更重要的是Kubernetes可以按照用户的意愿和整个系统的规则,高度自动化的处理好容器之间的各种关系实现“编排”能力。
简单概括,提供创建应用>应用部署>提供服务>动态伸缩>应用更新一系列服务。
k8s主要由以下几个核心组件:
一个kubernetes集群由分布式存储etcd、控制节点controller以及服务节点Node组成。
如上图所示,Kubernetes在架构上主要由Master和Node两种类型的节点组成,这两种节点分别对应着控制节点和计算节点。其中Master即控制节点,是整个Kubernetes集群的大脑,负责整个集群的管理,比如容器的调度、维护资源的状态、自动扩展以及滚动更新等,并能根据集群系统资源的整体使用情况将作业任务自动分发到可用Node计算节点。
看Master节点主要由三个紧密协作的独立组件组合而成。
需要说明的是,上述组件在工作状态下还会产生许多需要进行持久化的数据,这些数据会通过kube-apiserver处理后统一保存到Etcd存储服务中。所以从这个角度看kube-apiserver不仅是外部访问Kubernetes集群的入口,也是维护整个Kubernetes集群状态的信息中枢。
而在Kubernetes计算节点中,除了上述3个系统组件外,其他基本与Master节点相同,而其中最核心的部分就是kubelet组件。它的核心功能具如下:
在Kubernetes中kubelet会通过CRI接口同容器运行时进行交互,而容器运行时则通过叫做OCI容器运行时规范与底层Linux操作系统进行交互(涉及对Namespace、Cgroups等资源的操作,具体可以了解下Docker的技术原理)。需要强调的是,这里所说的容器运行时并不仅仅指Docker,而是所有实现了CRI接口规范的容器项目都可以作为Kubernetes的容器运行时存在。这是因为Kubernetes从设计之初就没有把Docker作为整个架构的核心,而只是将其作为最底层的一个容器运行时来实现。
况且从Kubernetes架构设计上看,Kubernetes并没有打算重复造轮子而对已有的容器技术进行替代,它更关注的是对运行在大规模集群中的各种任务根据其关系进行作业编排及管理,所以任何实现了CRI、CNI、CSI等协议标准的容器技术都可以无缝地与Kubernetes集成。从这个角度看,Docker与Kubernetes的关系并不是替代的关系,而是平台与组件的关系,Kubernetes可以利用现有的Docker容器运行时技术,但却并不完全依赖Docker。而这也正是Kubernetes为什么被称作容器编排技术而不仅仅只是容器技术的原因。
[1] Kubernetes和Docker的关系是什么?
[2] 《k8s入门指南》这是一个博主写的书
从零开始入门 K8s | 调度器的调度流程和算法介绍
Policy允许用户配置过滤器、打分器和扩展点,以定制化调度策略。Informer通过K8s的List+Watch机制实时获取Pods、Nodes等信息,并作为调度器的缓存。调度流水线则包含Filter(选择符合Pod需求的节点)、Score(排序和打分)和Reserve(预占资源)三个阶段。调度流程详细分析了调度队列的结构和操作,如activeQ、bac...
k8s五分钟快速入门
简单概括,提供创建应用>应用部署>提供服务>动态伸缩>应用更新一系列服务。k8s主要由以下几个核心组件:一个kubernetes集群由分布式存储etcd、控制节点controller以及服务节点Node组成。如上图所示,Kubernetes在架构上主要由Master和Node两种类型的节点组成,这两种节点分别对应着控制节点和计算节点。其中Master即控...
K8S 速成方法有哪些?
Kubernetes(K8S)是一个开源的容器编排系统,用于自动化容器化应用程序的部署、扩展和管理。如果您想快速入门Kubernetes,可以参考以下资源:- 从0到1使用Kubernetes系列——K8s入门- 0.1小时快速入门Kubernetes(k8s)集群搭建- 3小时入门 Kubernetes(K8S)集群部署 ...
一文让你从零开始入门 K8s
深入理解 K8s 中的基石:etcd 入门指南 etcd,作为分布式、一致性的键值存储系统,起源于 CoreOS,最初用于解决集群升级和配置管理问题。如今,它在 CNCF 基金会的支持下,被各大互联网公司广泛应用,如 AWS、Google、Alibaba 等。让我们跟随 etcd 的发展历程,探索其架构与核心机制。etcd 的发展始于2013...
如何入门k8s?
Ingress是一种网关服务,可以将k8s服务通过http协议暴露到外部。无状态应用 & 有状态应用 无状态应用指的是应用在容器中运行时候不会在容器中持久化存储数据,应用容器可以随意创建、销毁;如果一个应用有多个容器实例,对于无状态应用,请求转发给任何一个容器实例都可以正确运行。例如:web应用 有状态应用...
K8s如何学习?
如何在本地快速启动一个k8s集群?小技巧,学到了
其实有很多种方式可以在本地运行 k8s,比如:当然了,如果只是学习 k8s 的使用,那么以上方案均可以使用。k3s 包括以下一些组件:k3s 是一种模块化的发行版,可以很方便的替换上面的组件。在 Mac 下,使用 Homebrew 可以很方便的安装 k3d: brew install k3d。顺手安装一下 kubectl 和 kubecm:我们...
Kubernetes 入门教程
在文章过程中,会穿插引出 Pod、Deployment、StatefulSet 等 k8s 的概念,这些概念通过例子引出来,更容易理解和实践。 作者| 凡澈 来源 | 阿里技术公众号前言 本文是一篇 kubernetes(下文用 k8s 代替)的入门文章,将会涉及 k8s 的架构、集群搭建、一个 Redis 的例子,以及如何使用 operator-sdk 开发 operator 的教程...
K8S——Pod入门理解
pod是K8s最小的运行,部署单位。用K8s作容器管理,比如Mysql,Redis等服务运行需要创建Pod,才能对外提供服务。3Pod操作相关命令 3.0 pod创建 kubectl run httpd--image=httpd -n 空间名 3.1 查看所有空间上的pod节点 kubectlget pods --all-namespaces 3.2 查看指定空间上的pod kubectlgetpod -n ...
K3S 入门级实战教程,和 K8S 有何不同?
兼容与易操作:K3s与K8s API保持一致,用户可以使用YAML配置文件和kubectl命令行工具进行管理。安装K3s的过程非常便捷,只需运行简单的命令:curl -sL https://get.k3s.io | sh或者指定特定版本和配置选项。安装完成后,可以通过以下步骤配置和管理集群:export KUBECONFIG=/etc/rancher/k3s/k3s.yaml 或...