Kubernetes(k8s)-node组件介绍

作者介绍:简历上没有一个精通的运维工程师。希望大家多多关注作者,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

我们上一章介绍了Docker基本情况,目前在规模较大的容器集群基本都是Kubernetes,但是Kubernetes涉及的东西和概念确实是太多了,而且随着版本迭代功能在还增加,笔者有些功能也确实没用过,所以只能按照我自己的理解来讲解。

我们在上小节介绍了master上的4个核心组件,这4个核心组件都是以静态pod方式存在的。也只有这几个是以静态的pod,其他的组件则是以其他方式运行的

1.Kubelet

是 Kubernetes Agent,负责与 Master 节点通信并管理 Node 上的容器操作。它监控和报告 Node 上的容器状态,执行容器的创建、启动、停止等操作。

kubelet是我们在部署k8s的时候通过yum 直接安装的,所以kubelet是二进制方式运行的。

图片

    [root@master01 kubelet]# cat /var/lib/kubelet/config.yaml 
    apiVersion: kubelet.config.k8s.io/v1beta1
    authentication:
      anonymous:
        enabled: false
      webhook:
        cacheTTL: 0s
        enabled: true
      x509:
        clientCAFile: /etc/kubernetes/pki/ca.crt
    authorization:
      mode: Webhook
      webhook:
        cacheAuthorizedTTL: 0s
        cacheUnauthorizedTTL: 0s
    cgroupDriver: systemd
    clusterDNS:
    - 10.96.0.10
    clusterDomain: cluster.local
    cpuManagerReconcilePeriod: 0s
    evictionPressureTransitionPeriod: 0s
    fileCheckFrequency: 0s
    healthzBindAddress: 127.0.0.1
    healthzPort: 10248
    httpCheckFrequency: 0s
    imageMinimumGCAge: 0s
    kind: KubeletConfiguration
    logging:
      flushFrequency: 0
      options:
        json:
          infoBufferSize: "0"
      verbosity: 0
    memorySwap: {}
    nodeStatusReportFrequency: 0s
    nodeStatusUpdateFrequency: 0s
    rotateCertificates: true
    runtimeRequestTimeout: 0s
    shutdownGracePeriod: 0s
    shutdownGracePeriodCriticalPods: 0s
    staticPodPath: /etc/kubernetes/manifests
    streamingConnectionIdleTimeout: 0s
    syncFrequency: 0s
    volumeStatsAggPeriod: 0s

    kubelet涉及的配置比较多,而且也不仅仅包含这一个文件,这里只列举了比较重要的配置文件。

    2.Kube-Proxy

    负责网络代理和负载均衡,处理集群内部和集群外部的网络流量转发。它维护了集群内部的网络规则和服务发现,使得容器能够相互通信和访问集群内外的服务。

    Kube-Proxy通过kubeadm方式部署的话,目前部署方式是通过DaemonSet资源。DaemonSet确保在每个节点上运行一个kube-proxy实例。这样我们只需要配置一次,后续无法是增加节点还是减少节点均不需要关注。

    如果是以iptables作为网络模式,则Kube-Proxy的作用就是维持节点的iptables规则,理论上所有节点的iptables的规则都是相同的,在日常运维中也出现过iptables规则异常,通过删除kube-porxy的pod触发重新创建恢复规则。

    这里的node主要是跑业务容器,所以只介绍了2个比较核心组件,其实这2个组件在master节点也有(master也是一个特殊节点),kubelet主要用于pod的生命周期管理,kube-proxy则是为了提供svc的通信(pod的跨主机通信不依赖kube-proxy),它依赖的是网络插件。

    3.架构

    图片

    这里的每一条线都是https通信,而且是双向证书,和传统的https通讯单向证书还不太一样,这个也是k8s的核心之一。

    这里还多延申了一个控制器,是因为官方的控制器并不能满足所有业务需求,所以这里引入了第三方控制器,用于控制一些第三方资源。在各个云厂商有很多产品,很多都会以k8s作为了标准底座,所以就会很多类似的第三方控制器,也是k8s的的一个发展方向。

    到这里我们对整个集群都有一定的认识,后面我们讲整个k8s的里面涉及打概念进行进一步的讲解。

    运维小路

    一个不会开发的运维!一个要学开发的运维!一个学不会开发的运维!欢迎大家骚扰的运维!

    关注微信公众号《运维小路》获取更多内容。

    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值