Kubernetes | 初步认识Kubernetes

277 阅读2分钟

「这是我参与11月更文挑战的第20天,活动详情查看:2021最后一次更文挑战」。

前言

Kubernetes ,简称 K8s ,这个 8 是指名字中间的 8 个字符“ubernete”。是一个开源的,用于管理云平台中多个主机上的容器化的应用,K8s 的目标是让部署容器化的应用 简单 并且 高效(powerful), K8s 提供了应用部署规划更新维护的一种机制。

概述

K8S是谷歌在2014年开源的容器化集群管理系统。我们可以使用K8S进行容器化应用部署, 并且K8S利于应用的扩展,使项目部署更加简洁高效。

特性

1. 自动部署

基于容器对应用自动部署 2. 自我修复 当容器失败时,会对容器进行重启,多节点情况下会自动切换节点
当所有节点都有问题时,会对容器进行重新部署和调度 3. 水平扩展 通过简单的命令扩展和剪裁应用服务 4. 服务发现 支持服务发现和负载均衡 5. 滚动更新 可以根据应用的变化,对应用容器运行的应用,进行一次性或者批量式更新 6. 版本回退 对部署的应用,即时的进行版本回退操作 7. 密钥和配置管理 在不重新构建镜像的情况下,部署和更新密钥和应用配置,类似热部署 8. 存储编排 支持系统存储挂载及应用,存储系统支持本地、网络存储、公共云存储服务 9. 批处理 提供一次性任务,定时任务,满足批量数据处理和分析的场景。

集群架构组件

Master组件(主控节点)

1. API server

集群统一入口,以restful方式,交给etcd存储

2. scheduler

节点调度,选择node节点应用部署

3. controller-manager

集群中后台统一控制,处理集群中常规后台任务,一个资源对应一个控制器

4. etcd

存储系统,用于保存集群相关的数据

node组件(工作节点)

1. kubelet

master排到node节点代表,管理本机容器的各种操作

2. kube-porxy

提供网络代理,负载均衡等操作

核心概念

1. Pod

  • 最小部署单元
  • 一组容器的集合
  • 共享网络
  • 生命周期是短暂的,重启会生成新的Pod

2. Controller (创建pod)

  • 确保预期的pod副本数量
  • 无状态应用部署 (拿来即用)
  • 有状态应用部署 (使用依赖某些条件)
  • 确保所有node运行同一个pod
  • 一次性任务和定时任务

3. Service

定义一组pod的访问规则