zoukankan      html  css  js  c++  java
  • k8s static pod(静态pod)

    https://www.jianshu.com/p/eb222d2cdd59

    静态pod

    静态pod 是由 kubelet 管理的只在特定node上存在的pod;静态pod总是由kubelet创建的,并且只在kubelet所在的Node上运行。
    静态pod 不能通过 api-server来管理,无法和 RC,RS,Deployment或者 DaemonSet进行关联;
    并且 kubelet无法对静态pod 进行健康检查。

    创建静态 pod 的两种方式

    1、本地配置文件方式

    kubelet 启动时由 --pod-manifest-path 指定的目录(默认/etc/kubernetes/manifests),kubelet会定期扫描这个目录,并根据这个目录下的 .yaml 或 .json 文件进行创建和更新操作

    • 如果把 pod的yaml描述文件放到 这个目录中,等kubelet扫描到文件,会自动在本机创建出来 pod;
    • 如果把 pod的yaml文件更改了,kubelet也会识别到,会自动更新 pod;
    • 如果把 pod的yaml文件删除了,kubelet会自动删除掉pod;
    • 因为静态pod 不能被 api-server 直接管理,所以它的更新删除操作不能由 kubectl 来执行,只能直接修改或删除文本文件。

    1.1、查看本机 kubelet

    kubelet 是linux原生service unit,在k8s 的每台机器上包括master都存在。

    1.2、查看本机 kubelet 的service unit

    1.3、举例,k8s集群中的静态pod

    都在 master 机器上

    • etcd
    • kube-apiserver
    • kube-controller-manager
    • kube-scheduler

    2、HTTP仓库配置文件方式

    --manifest-url,kubelet定期从 url获取 文件,其余操作和 第一种方式一样。

    问题

    在 yaml里的 pod 和 svc 并没有 label 和 selector,那是如何暴露的?
    1、service 的常规操作
    通过 selector 找到 pod,然后根据 pod来创建出来 endpoints,然后通过 service就能访问到pod了
    2、service 的非常规操作
    注意在常规操作里,创建出来的 endpoints 的名字是和 service名字一致的。
    有了这个信息,非常规操作:不需要 selector,创建 servcie,创建出来和 service name 一样的 endpoints,就能访问到了。
    3、k8s的几个静态pod都是这样暴露的。

  • 相关阅读:
    playbook实现httpd服务安装与配置
    Ansible介绍与安装使用
    Servlet 连接mysql数据库
    day04作业
    day03python作业
    正式课第一天作业
    函数
    周作业
    数据类型
    day03作业
  • 原文地址:https://www.cnblogs.com/leaderjs/p/12849877.html
Copyright © 2011-2022 走看看