首页 > Web开发 > 详细

Kubernetes知识汇总

时间:2019-11-01 19:44:58      阅读:68      评论:0      收藏:0      [点我收藏+]

Kubernetes知识汇总,整理中

1.原理
2.Kubernetes组件
2.1 Kubernetes 主控组件(Master): kube-apiserver、kube-controller-manager和kube-scheduler
    2.1.1 kube-apiserver:对外暴露了Kubernetes API。它是的 Kubernetes 前端控制层。它被设计为水平扩展,即通过部署更多实例来缩放
    2.1.2 kube-controller-manager运行控制器,它们是处理集群中常规任务的后台线程。
    2.1.3 kube-scheduler(调度器)监视没有分配节点的新创建的 Pod,选择一个节点供他们运行
    这些控制器包括:
        节点控制器: 当节点移除时,负责注意和响应。
        副本控制器: 负责维护系统中每个副本控制器对象正确数量的 Pod。
        端点控制器: 填充 端点(Endpoints) 对象(即连接 Services & Pods)。
        服务帐户和令牌控制器: 为新的命名空间创建默认帐户和 API 访问令牌.
    2.1.4 etcd 用于 Kubernetes 的后端存储。所有集群数据都存储在此处,始终为您的Kubernetes集群的etcd 数据提供备份计划
2.2 集群中的每个非master节点都运行两个进程:
    2.2.1 kubelet,和master节点进行通信,监测已分配给其节点的Pod(通过apiserver或通过本地配置文件)提供如下功能:
        挂载 Pod 所需要的数据卷(Volume)。
        下载 Pod 的 secrets。
        通过 Docker 运行(或通过 rkt)运行 Pod 的容器。
        周期性的对容器生命周期进行探测。
        如果需要,通过创建 镜像 Pod(Mirror Pod) 将 Pod 的状态报告回系统的其余部分。
        将节点的状态报告回系统的其余部分
    2.2.2 kube-proxy是一种网络代理,将Kubernetes的网络服务代理到每个节点上,通过维护主机上的网络规则并执行连接转发,实现了Kubernetes服务抽象
3.Kubernetes对象
    要使用Kubernetes对象(无论是创建,修改还是删除它们),都需要使用Kubernetes API
4.deployment
5.deamonSet
6.service
    service --> endpoint --> pod
    6.1 定义 Service
        apiVersion: v1
        kind: Service
        matadata:
          name: string
          namespace: string
          labels:
          - name: string
        spec:
          selector: []
          type: string
          clusterIP: string
          sessionAffinity: string
          ports:
          - name: string
            protocol: string
            port: int  #service端口
            targetPort: int  #pod端口
            nodePort: int  #node暴露端口
          status:
            loadBalancer:
              ingress:
                ip: string
                hostname: string
    6.2 vip
    在 Kubernetes 集群中,每个 Node 运行一个 kube-proxy 进程。kube-proxy 负责为 Service 实现了一种 VIP(虚拟 IP)的形式,而不是 ExternalName 的形式
    6.3 service三种代理模式(4层):
    ipvs:
        client_pod 请求到ipvs(service规则),再有ipvs调度到server_pod上面 (ipvs-1.11之后)
    iptables:
        client_pod 请求到iptables(service规则),再有iptables调度到server_pod上面  (iptables 1.10之前)
    userspace:
        client_pod 请求到iptables(service规则),在转发给kube-proxy处理,之后再有iptables调度到server_pod上面 (userspace-浪费资源)
    6.4 服务发现
        Kubernetes 支持2种基本的服务发现模式 —— 环境变量和 DNS
    6.5 service类型
        6.5.1 NodePort
        6.5.2 LoadBalancer
        6.5.3 ExternalName
        6.5.4 clusterIP 
            默认是 ClusterIP 类型。Type 的取值以及行为如下: * ClusterIP:通过集群的内部 IP 暴露服务,选择该值,服务只能够在集群内部可以访问,这也是默认的 ServiceType。 * NodePort:通过每个 Node 上的 IP 和静态端口(NodePort)暴露服务

Kubernetes知识汇总

原文:https://www.cnblogs.com/orange-lsc/p/11778680.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!