美文网首页云原生
一 Kubernetes学习前期准备

一 Kubernetes学习前期准备

作者: 負笈在线 | 来源:发表于2022-03-25 13:00 被阅读0次

    (一) Kubeadm方式一次安装即成功原则

    1.安装及优化部分

    • 1)基本环境配置及优化

    • 2)安装Runtime

    • 3)Kubeadm&Kubelet

    • 4)高可用实现

    2.集群建立部分

    • 1)Master节点初始化

    • 2)Node节点配置

    • 3)CNI插件安装

    3.Addons安装

    • 1)Metrics Server

    • 2)DashBoard

    4.收尾工作

    • 1)集群可用性验证

    • 2)生产必备配置

    (二) 二进制一次安装即成功原则

    1.安装及优化部分

    • 1)基本环境配置及优化

    • 2)安装Runtime

    • 3)K8S组件及Etcd安装

    • 4)高可用实现

    2.集群建立部分

    • 1)生成集群证书

    • 2)Master节点初始化

    • 3)Node节点配置

    • 4)CNI插件安装

    3.Addons安装

    • 1)Metrics Server

    • 2)DashBoard

    • 3)CoreDNS

    4.收尾工作

    • 1)集群可用性验证

    • 2)生产必备配置

    (三) 安装准备

    1.集群网段划分

    • 1)主机节点网段
    192.168.1.0/24
    
    • 2)Service网段
     10.96.0.0/16
    
    • 3)Pod网段
     10.244.0.0/16
    

    2.集群资源配置

    • 1)Master节点
     2C4G*3
    
    • 2)Node节点
     2C4G*3
    

    3.生产环境K8S版本选择及安装注意事项

    • 1)K8S版本选择
    https://kubernetes.io/docs/home/
    
    • 2)安装环境与工具
     Workstation
    
     SecureCRT
    
    • 3)安装技巧
      CentOS 7系统安装
      虚拟机拍快照技巧

    (四) K8S高可用架构解析

    1.K8S基本架构及核心工作过程

    K8S基本架构图

    Kubernetes的核心工作过程
    ・资源对象:Node、Pod、Service、Replication Controller 等都可以看作一种资源对象
    ・操作:通过使用 kubectl 工具,执行增删改查
    ・存储:对象的目标状态(预设状态),保存在 etcd 中持久化储存;
    ・自动控制:跟踪、对比 etcd 中存储的目标状态与资源的当前状态,对差异资源纠偏,自动控制集群状态。

    Kubernetes 实际是高度自动化的资源控制系统,将其管理的一切抽象为资源对象,大到服务器 Node 节点,小到服务实例 Pod。

    Kubernetes 的资源控制是一种声明+引擎的理念:
    ・声明:对某种资源,声明他的目标状态
    ・自动:Kubernetes 自动化资源控制系统,会一直努力将该资源对象维持在目标状态。

    Master:管理节点,集群的控制和调度
    ・kube-apiserver
    ・kube-controller-manager
    ・kube-scheduler
    ・etcd

    Maste管理节点:管理整个 Kubernetes集群,接收外部命令,维护集群状态。
    kube-apiserver: Kubernetes API Server集群控制的入口;资源的增删改查,持久化存储到 etcd;kubectl 直接与 API Server 交互,默认端口 6443。
    kube-scheduler: 负责将 pod 资源调度到合适的 node 上。调度算法:根据 node 节点的性能、负载、数据位置等,进行调度。默认监听 10251 端口。
    etcd: 一个高可用的 key-value 存储系统。作用:存储资源的状态;默认监听 2379 和 2380 端口(2379提供服务,2380用于集群节点通信)
    controller-manager: 所有资源的自动化控制中心;controller manager 管理这些控制器;controller manager 是自动化的循环控制器。

    Kubernetes 的核心控制守护进程,默认监听10252端口。scheduler和controller-manager都是通过apiserver从etcd中获取各种资源的状态,进行相应的调度和控制操作。

    Node:工作节点,执行具体的业务容器
    ・kubelet
    ・kube-proxy

    Node 节点:Master 节点,将任务调度到 Node 节点,以 docker 方式运行;当 Node 节点宕机时,Master 会自动将 Node 上的任务调度到其他 Node 上。
    kubelet: 本节点Pod的生命周期管理,定期向Master上报本节点及Pod的基本信息。kubelet是在每个Node节点上运行agent;负责维护和管理所有容器:从 apiserver 接收 Pod 的创建请求,启动和停止Pod。Kubelet不会管理不是由Kubernetes创建的容器定期向Master上报信息,如操作系统、Docker/ container版本、CPU、内存、pod 运行状态等信息。
    kube-proxy:集群中 Service 的通信以及负载均衡。功能:服务发现、反向代理。

    • 反向代理:支持TCP和UDP连接转发,默认基于Round Robin算法将客户端流量转发到与service对应的一组后端pod。

    • 服务发现:使用 etcd 的 watch 机制,监控集群中service和endpoint对象数据的动态变化,并且维护一个service到endpoint的映射关系。(本质是:路由关系)

    • 实现方式:存在两种实现方式,userspace 和 iptables。
      userspace:在用户空间,通过kuber-proxy实现负载均衡的代理服务,是最初的实现方案,较稳定、效率不高;
      iptables:在内核空间,是纯采用iptables来实现LB,是Kubernetes目前默认的方式;

    runtime

    • 一般使用Docker/ container容器,也支持其他的容器。

    2.K8S高可用架构

    K8S高可用架构图

    相关文章

      网友评论

        本文标题:一 Kubernetes学习前期准备

        本文链接:https://www.haomeiwen.com/subject/qmarjrtx.html