zoukankan      html  css  js  c++  java
  • kubernetes基础——1.基本概念

    一、kubernetes特性

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

    二、kubernetes cluster

    Masters * 3  <===> Node(worker) * n

    3个Master节点,保持高可用。多个Node工作节点。

    三、基本概念

    1. Master
    kubernetes里德Master是集群的控制节点,通常3台服务器作为冗余部署。
    Master中有三个组件:
    (1)API Server:集群的入口API
    (2)scheduler:调度器,调度Pod
    (3)Controller Manager:管理各种控制器。(控制器在loop中监控容器状态,在需要时向API Server发送请求。)

    2. Pod
    (1)Pod是Kubernetes的基础单元,Pod可以认为是容器的外壳,给容器作了一层抽象的封装。
    (2)一个Pod可以包含多个容器,多个容器共享一个网络名称空间(net,UTS,IPC),而PID,USER,Mount是隔离的。
    (3)一个Pod内的容器共享存储卷。
    (4)一个Pod内的所有容器必须运行在同一个Node上。

    3. Node
    工作节点,多个Node的资源形成统一资源池。
    每个Node节点上都运行一下关键进程:
    (1)kubelet:负责Pod对应的容器的创建、启停等任务,同时与Master节点密切协作,实现集群管理的基本功能。
    (2)kube-proxy:实现Kubernetes Service的通信与负载均衡机制的重要组件。
    (3)Docker:Docker引擎,负责本机的容器创建和管理工作。

    4. Label
    键值对形成的标签,key与value均由用户自定。label可以附加到各种资源上。通过Label Selector(标签选择器)查询与筛选资源对象。

    5. Pod控制器
    (1)RC(Replication Controller)保持Pod副本数量,多退少补。
    (2)Replica Set与Deployment,RS是RC的升级版本,一般被Deployment所使用。
    (3)StatefulSet,面向有状态服务
    (4)Daemon Set
    (5)Job,一次性任务
    (6)HPA,Horizontal Pod Autoscaler,横向自动扩容

    6. Service
    (1)定义了服务的访问入口地址。不是应用程序,只是一个iptables的dnet规则。
    (2)前端Pod通过service入口访问,Service负载后面通过Label Selector筛选出的Pod。
    (3)每一个Service会生成一个虚拟IP,通过Kubernetes的DNS映射,访问Service的name就好。

    7. 三种网络通信
    (1)同一个Pod内的多个容器间通过lo
    (2)各Pod之间的通信(跨host)Overlay叠加网络,即隧道
    (3)Pod与Service之间通信:Pod内某容器 ——> 网关(docker0) ——> IPV或iptables规则 ——> Service ——> Pod

    三种IP
    NodeIP:Node节点的IP
    PodIP:Pod的IP
    CluserIP:Service的IP

    注:每个node节点中的kube-proxy组件负责更新IPVS或iptables规则。API server ——> kube-proxy ——> 规则

    8. etcd
    一个高可用的分布式键值数据库。
    用来维护所有主节点的状态。

    9. CNI
    容器网络接口,遵循CNI开发的服务就可以作为kubernetes的网络解决方案。
    常见的三方方案:
    (1)flannel:配置网络,不支持网络策略
    (2)calico:配置网络,配置策略,但使用复杂
    (3)canel:使用flannel配置网络,使用calico配置策略。

    注:可以像DNS一样作为kubernetes的附件,也可以在node上作为守护进程来使用。

    10. Namespace
    kubernetes的Namespace是逻辑上的分组,以便于管理与资源隔离。与docker的Namespace是不同的概念。

  • 相关阅读:
    wc 统计程序
    读C#程序
    VS2013 单元测试
    android开发心得之知识的量变到质变
    大学第一篇博客
    团队作业七
    团队作业六
    团队作业五
    团队作业四
    团队作业三
  • 原文地址:https://www.cnblogs.com/maxgongzuo/p/10524591.html
Copyright © 2011-2022 走看看