zoukankan      html  css  js  c++  java
  • 1. k8s 架构概述

    前言

    Ansible - 应用程序编排工具

    Docker - 应用程序容器化

    容器化管理接口和早期应用的管理是不同的。docker 的出现就呼唤面向容器化的编排工具的实现。


    docker 三剑客

    docker compose 编排工具,适用于单机

    docker swarm 将多台docker主机整合成一个资源池。

    docker machine 将多台主机加入到 docker swarm的先决条件,预处理工具。

    不再是面向单机的编排工具。


    mesos - IDC 的操作系统

    kubernetes:占据容器编排工具的80%份额

    微服务:一个小程序只干一件事,天然和容器结合,利用容器本身的特性,使得微服务和容器结合起来。

    DevOps

    • CI:持续集成

    • CD:持续交付 Delivery

    • CD:持续部署 Deployment

    kubernetes 特性:

    1. 自动装箱,自我修复,水平扩展,服务发现和负载均衡,自动发布和回滚。
    2. 密钥和配置管理,存储编排,批量处理执行

    更加关注的是群体,而不再是个体。

    Dockerfile 使用 entrypoint.sh 来定义容器的启动。

    k8s 概述

    kubernetes 就是一个集群。集群是分角色的, master/nodes

    • master:一般作冗余,3个就够了。

    • node: worker,若干个。

    客户端请求先到 masters 创建启动容器的请求交给 master ,master当中有一个调度器可分出现有node的可用资源状态,找一个最佳适配用户请求资源的节点, 由这个node 本地的容器引擎运行起来。 镜像在 镜像仓库,可在互联网也可在私有仓库。

    接收请求的只是能是 kubernetes master

    • API Server 接收、解析、处理客户端请求。

    • scheduler - 计算node资源。 首先选3个node ,然后在优先最佳的node 创建并运行容器。

    node节点 kubelet - 确保容器处于健康状态

    控制器 - 监控容器状态。

    控制器有问题了怎么办?

    控制器不健康了,控制器管理器 controller manager

    控制器管理器不健康了,是有三台主机冗余的。1个主节点,2个备用节点。

    kubernetes master 三大组件:

    • API server 负责接收并处理请求;
    • scheduler 调度容器创建的请求;
    • 控制器管理器:确保已创建的容器处于健康状态

    K8S 上 最小运行的单元叫 pod, 可以理解为容器的外壳,给容器做了一次抽象的封装。

    pod 是 k8s 最小调度单元。

    一个pod中可以包含多个容器,多个容器共享底层的网络名称空间、UTS IPC 同享存储卷。

    一般来说,一个 pod 内只放一个容器,除非容器之间有特别紧密的关系。如果要放置多个容器,其中一个为主容器,其他为辅助容器。

    如果将某个pod 调度到某个node上运行,则这个pod中的所有的容器都在这个node 上运行。

    Pod 分类:

    为了对pod 分类进行识别,需要在 pod上附加一些元数据。可以在dockerfile中直接打上标签。这些这些标签就是 k-v 数据。

    标签选择器 selector

  • 相关阅读:
    shell学习(三)
    shell学习(四)
    自定义yum源
    fpm制作rpm包
    shell学习(三)
    shell学习(二)
    linux系统下创建lvm挂载到指定目录
    nginx做代理安装docker
    df -h命令卡死解决办法
    docker安装
  • 原文地址:https://www.cnblogs.com/hukey/p/14118744.html
Copyright © 2011-2022 走看看