目录
安装三大组件-kubeadm、kubelet、kubectl
一、K8S简介
Kubernetes中文官网:Kubernetes
GitHub:github.com/kubernetes/kubernetes
Kubernetes简称为K8s,是用于自动部署、扩缩和管理容器化应用程序的开源系统,起源于Google 集群管理工具Borg。
Kubernetes集群组件逻辑图

k8s集群属于Master-Slave主从架构,Master节点负责集群管理和资源调度,用于运行控制平面组件(Control Plane Components),Slave节点就是工作负载节点,一般称为Node节点,也叫Worker节点,主要负责运行Pod,一个Pod里可以同时运行多个容器,而容器一般封装的就是基于Dokcer打包的应用,Pod英文叫豌豆荚,每个容器就像是一颗豌豆,简单来说Pod就是一组容器。
Master节点组件及功能
| 组件名称 | 功能用途 |
| kube-apiserver | 负责处理接受请求。 |
| etcd | 高可用键值存储,用于k8s集群的后台数据库。 |
| kube-scheduler | 负责选择Worker节点运行新创建的Pod,需要考虑的因素包括资源需求,软硬件及策略约束,亲和性和反亲和性规范、数据位置等。 |
| kube-controller-manager |
负责运行不同类型的控制器进程,每个控制器都是一个单独进程,常见的控制器有节点控制器(Node Controller)、任务控制器(Job Controller)、端点分片控制器(EndpointSlice controller)、服务账号控制器(ServiceAccount controller)等。 |
| cloud-controller-manager |
用于嵌入特定的云平台的控制器。 |
Slave节点组件及功能
| 组件名称 | 功能用途 |
| kubelet |
负责管理Node节点上容器的健康运行,通过接收一组PodSpecs来实现,每个Node节点上都会运行一个kubelet,不会管理不是由 Kubernetes 创建的容器。 |
| kube-proxy |
负责Node节点上的网络代理,用于维护网络规则,这些规则允许从集群内部或外部与Pod进行网络通信,每个Node节点上都会运行一个kube-proxy,k8s的Service就是利用该组件实现的。 |
| Container Runtime |
负责管理容器的执行和生命周期。支持多种类型的容器运行时环境,比如 containerd、 CRI-O及CRI自定义实现,k8s使用容器运行时接口(CRI)和用户选择的容器运行时交互。 |
安装部署
生产环境部署k8s主要有两种方式:
二进制包
Github下载稳定版的二进制包,手动部署每个组件组成k8s集群。
kubeadm工具
使用Kubeadm工具可以快速搭建一个k8s集群,主要包括初始化控制平面节点和加入Worker节点,提供的主要功能如下:
- kubeadm init:初始化一个Master节点
- kubeadm join:将Worker节点加入集群
- kubeadm upgrade:升级K8s版本
- kubeadm token:管理 kubeadm join 使用的令牌
- kubeadm reset:清空 kubeadm init 或者 kubeadm join 对主机所做的任何更改
- kubeadm version:打印 kubeadm 版本
- kubeadm alpha:预览可用的新功能
二、准备工作
软硬件要求
- Linux操作系统,Ubuntu 或 CentOS
- 每台节点至少2G
- Master节点至少2C
- 集群节点网络互通
集群规划
| 操作系统 | CentOS Linux release 7.9.2009 x86_64 |
| Docker | v24.0.6 |
| k8s | v1.20.9 |
| kubeadm | v1.20 |
| 主机 | 角色 | IP | CPU | 内存 |
| node1 | Master | 192.168.5.10 |
16C | 40G |
| node2 | Node | <


1万+

被折叠的 条评论
为什么被折叠?



