在这里插入图片描述

前言

​ OpenStack是管理虚拟机的,底层依靠虚拟化技术;kubernetes是管理容器的,底层也是依靠虚拟化技术,原理其实差不多,可以理解容器就是虚拟化的升级。
在这里插入图片描述

一、Kubernetes架构

一个基础的Kubernetes集群包含一个master节点和多个node节点。每个节点可以是一台物理机,也可以是一台虚拟机。

  • Master节点提供的集群控制,对集群做出全局性决策,例如调度等。通常在master节点上不运行用户容器
  • 节点组件运行在每一个node节点上,维护运行的pod并提供Kubernetes运行时环境

1.1Master节点

  1. Kube-apierver:Kube-apierver对外暴露了Kubernetes API。它是Kubernetes的前端控制层。它被设计为水平扩展,即可通过更多实例来缩放。

  2. etcd:etcd用于 Kubernetes的后端存储。所有集群数据都存储在此处,始终为 Kubernetes集群的etcd数据提供备份计划

  3. kube-controller-manager:运行控制器,他们是处理集群中常规任务的后台线程。逻辑上,每个控制器是一个单独的进程,但为了降低复杂性,他们都被编译成独立的可执行文件,并在单个进程中运行。

  4. kube-scheduler:监视没有分配节点的新创建的POD,选择一个节点供他们运行

1.2 Node节点

  1. kube-proxy:kube-proxy用于管理service的访问入口,包括集群内pod到service的访问和集群外访问service
  2. kubelet:kubelet是在集群内每一个节点中运行的一个代理,用于保证pod的运行
  3. 容器引擎:通常使用docker来运行容器,也可以使用rkt等作为替代方案
    在这里插入图片描述

1.3 Add-ons

除了上述组件外,Kubernetes使用中通常需要一些额外的组件实现特定的功能,常用的Add-ons包括:

  1. Core-dns:为整个集群提供DNS服务
  2. Ingress Controller:为server提供外网访问入口
  3. Dashboard:提供图形化管理界面
  4. Heapster:提供集群资源监控
  5. Flannel:为Kubernetes提供方木an的网络规划服务

注意:考试的时候Ingress Controller可能没装,需要自己安装

1.3 Kubeadm

Kubeadm是社区主推的快速创建Kubernetes集群工具。

kubeadm通过执行必要的操作来启动和运行一个最小可用的集群。它被故意设计为只关心启动集群,而不是之前的节点准备工作。同样的,诸如安装各种各样值得拥有的插件,例如Kubernetes Dashboard、监控解决方案以及特定云提供商的插件,这些都不在它负责的范围。

Master节点:Kubeadm init,快速初始化安装主节点组件

Node节点:Kubeadm join,将从节点加入集群

二、相关命令

2.1 查看组件运行状态

使用systemctl status命令查看组件运行状态

  • Docker

在这里插入图片描述

  • Kubelet

在这里插入图片描述

2.2 kubeadm容器化组件

kubeadm为了实现部署的便携性,将一些组件封装到了Pod中

  • Master节点

Master节点的相关组件都存放在kube-system这个命名空间中,这么做的优点就是哪个组件坏了可以自修复。

在这里插入图片描述

  • Node节点

查看node节点所包含的系统pod

在这里插入图片描述

三、总结

Kubernetes的架构原理性内容我在这篇博客K8S架构中已经写过,这边就只简单介绍一些相关组件,大家可以给专栏点个专注,后面将持续更新CKA的考试大纲相关内容。

写过,这边就只简单介绍一些相关组件,大家可以给专栏点个专注,后面将持续更新CKA的考试大纲相关内容。

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐