美文网首页
Kubernetes相关概念

Kubernetes相关概念

作者: 一生逍遥一生 | 来源:发表于2019-12-14 23:36 被阅读0次

    Kubernetes组成

    Kubernetes有Master和Node两种节点组成,而这两种角色分别对应这控制节点和计算节点。
    控制节点即Master节点,于其他三个组建组合而成:负责API服务的kube-apiserver;负责调度的kube-scheduler;
    负责容器编排的kube-controller-manager;整个集群的持久化数据,则有kube-apiserver处理后保存在Etcd中。
    kubelet主要负责同容器运行时打交道(CRI请求翻译成对Linux操作系统的调用)。
    Kubelet还通过gRPC协议同一个叫作Device Plugin的插件进行交互。
    kubelet的另一个重要功能,则是调用网络插件和存储插件为容器配置网络(CNI 容器网络接口)和持久化存储(CSI 容器存储接口)。

    Service服务的主要作用,就是作为Pod的代理入口,从而代替Pod对外暴露一个固定的网络地址。

    为什么不能使用docker部署kubeadm?

    kubelet是kubernetes项目用来操作Docker等容器运行时的核心组件。
    除了跟容器运行时打交道外,kubelet在配置容器网络、管理容器数据卷时,都需要直接操作宿主机。
    kubelet隔着容器的Mount Namespace和文件系统,操作宿主机的文件系统,这是有困难的(kubelet的挂载操作不会传播到宿主机上)。
    

    kubeadm init 的工作流程:

    1.检进行检查工作,以确定这个机器是否可以用来部署kubernetes:在通过Preflight Checks之后,kubeadm生成Kubernetes对外提供服务
    所需的各种证书和对应的目录。kubernetes默认使用https访问kube-apiserver。
    kubeadm为kubernetes项目生成的证书文件都放在master节点的/etc/kubernetes/pki项目下。
    证书生成后,kubeadm接下来会为其他组件生成防伪kube-apiserver所需要的配置文件,配置文件在/etc/kubernetes/*.conf。
    2.kubeadm会为Master组建生成Pod配置文件。Kubenetes中有一中特殊的容器为static pod。它允许你把数据的pod的yaml文件放在一个指定的目录里。
    kubelet在Kubernetes项目中的地位非常高。kubeadm会通过检查localhost:6443/healthz检查Master组件的健康状况。
    3.kubeadm就会为集群生成一个bootstrap token。在token生成之后,kubeadm会将ca.crt等master节点的
    重要信息,通过ConfigMap的方式保存在Etcd,供后续部署Node节点使用。这个ConfigMap的名字是cluster-info。
    4.安装默认插件。
    

    kubeadm join的工作流程:

    节点需要注册到集群上,必须在集群的kube-apiserver上注册。kubeadm发送请求,从kube-apiserver中获取到授权信息。
    

    通过Taint/Toleration调整Master执行Pod的策略

    默认情况下Master节点是不允许运行用户Pod的。依赖Kubernetes的Taint/Toleration机制可以操作。
    一旦某个节点被加上了一个Taint,那么所有的Pod就不能在这个节点上运行。如果个别的Pod声明Toleation,才能在这个节点上运行。
    

    在使用的Kubernetes的时候,推荐使用replicas=1而不使用单独pod的主要原因是pod所在节点出现故障的时候,pod可以调度到健康的节点上,单独的pod
    只能在健康节点的情况下有kubelet保证pod的健康状况。

    相关文章

      网友评论

          本文标题:Kubernetes相关概念

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