跳至主要內容

Kubernetes(k8s)

Unisky大约 2 分钟学习面试Kubernetes

Kubernetes(k8s)

1.什么是k8s?

本文内容都建立在kubernetes中文文档open in new window的基础上

Kubernetes 是一个可移植、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化。简单来说,k8s就是可以管理容器部署的分布式框架。

与k8s相似的是docker swarm

kubernetes有下面几个重要的功能:

  • 服务发现: 通过DNS或IP暴露容器
  • 负载均衡: 分配网络流量,使部署稳定
  • 存储编排: 自动挂载存储系统
  • 自动部署: 自动调整部署容器状态,自动装箱,分配CPU、RAM
  • 密钥管理: 存储管理敏感信息(令牌,密钥)
  • 自我修复: 重启、替换或杀死存在问题的容器

2.Node Pod Volume

node
node

Pod是一组紧密关联容器(可以包括一个或多个容器),是k8s调度的最小单位。

Node是主机(物理机或虚拟机),Pod在Node内部运行

Volume是Pod内容器数据持久化的解决方案。Pod生命周期短,且容器数据会随Pod的销毁而消失,可以通过Volum e与数据库连接实现持久化。

3.k8s集群架构

alt text
alt text

由多个node互相连接共同组成k8s集群。包括分布式存储etcd、控制节点controller、服务节点Node。

etcd保存整体集群状态

控制节点负责集群管理,功能包括:

  • 容器调度
  • 维护资源状态
  • 自动扩展
  • 滚动更新(对应组件kube-controller-manager)
  • ...

服务节点是运行容器的主机,有以下职能:

  • 管理镜像和容器(对应组件container runtime)
  • cluster服务发现和负载均衡(对应组件kube-proxy)

除了这三个大节点之外,还包括了一些核心组件:

  • kube-apiserver:提供资源操作唯一入口,提供认证、授权、访问控制、API注册发现等功能
  • kublet负责维持容器生命周期,也负责Volume和网络的管理,容器默认为Docker