美文网首页
kubelet 参数 kubernetes v1.13.0

kubelet 参数 kubernetes v1.13.0

作者: 耳机在哪里 | 来源:发表于2018-12-24 11:06 被阅读0次

    kubelet 参数

    • kubelet是在每个节点上运行的。

    • kubelet 使用描述 pod 的 YAML 或 JSON 格式的 PodSpec 工作。

    • kubelet 确保 PodSpecs 中描述的容器健康运行。 kubelet 不会管理非 Kubernetes 创建的容器。

    • 除了来自 apiserver 的 PodSpec 之外,还有三种方法可以将容器清单提供给Kubelet:
      1、文件:路径作为参数在命令行传递。kubelet 将定期监视此路径下的文件以获取更新。
      2、HTTP端点:HTTP端点作为参数在命令行传递。
      3、HTTP服务器:kubelet还可以监听HTTP并响应一个简单的API(当前未检测到)以提交新的清单。

    • 很多命令行参数被弃用,应该到 --config 参数指定的配置文件中设置。有关详细信息,请参阅 https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/

    参数名 含义 默认值
    allow-privileged 如果为true,则允许特权容器。DEPRECATED:将在以后的版本中删除 true
    allowed-unsafe-sysctls 不安全的sysctl或不安全的sysctl模式的白名单(以*结尾)默认情况下启用Sysctls功能门。
    azure-container-registry-config 包含Azure容器注册表配置信息的文件的路径。
    bootstrap-checkpoint-path <警告:Alpha功能>存储 checkpoint 的目录的路径
    bootstrap-kubeconfig 如果 --kubeconfig 指定的文件不存在,kubelet 使用该文件中的用户名和 token 向 kube-apiserver 发送 TLS Bootstrapping 请求;管理员通过了 CSR 请求后,kubelet 自动在 --cert-dir 目录创建证书和私钥文件(kubelet-client.crt 和 kubelet-client.key),然后写入 --kubeconfig 文件;
    cert-dir TLS证书所在的目录。如果提供了--tls-cert-file和--tls-private-key-file,则将忽略此参数。 “/ var / lib / kubelet / pki”
    cloud-config 云提供商配置文件的路径。空表示没有配置文件。
    cloud-provider 云服务商。如果为空表示没有云服务商。云服务商可能确定节点的名称(请参阅云提供商文档以确定是否以及如何使用主机名)。
    cni-bin-dir <警告:Alpha功能>搜索CNI插件二进制文件的目录列表。 仅在container-runtime设置为docker时有效。
    cni-conf-dir <警告:Alpha功能>搜索CNI配置文件的目录。 仅在container-runtime设置为docker时有效。 /etc/cni/net.d
    config 将从此文件加载其初始配置。 路径可以是绝对的或相对的; 相对路径从Kubelet的当前工作目录开始。 省略此参数以使用默认配置值。命令行的配置参数将会覆盖该文件中的值
    container-log-max-files <警告:测试版功能>设置容器可以存在的最大容器日志文件数。数字必须> = 2。此参数只能与--container-runtime = remote一起使用。 5
    container-runtime 要使用的容器运行时。可选: 'docker','remote','rkt(deprecated)' docker
    container-runtime-endpoint [Experimental]远程runtime服务的端点。目前Linux上支持unix socket和tcp端点,而windows上支持npipe和tcp端点。示例:'unix:///var/run/dockershim.sock','npipe:////./pipe/dockershim' unix:///var/run/dockershim.sock
    containerized 容器中运行kubelet。
    docker-endpoint 与docker端点进行通信。此docker参数仅在 container-runtime 设置为 docker 时有效 unix:///var/run/docker.sock
    docker-root DEPRECATED:从docker info读取docker root(这是一个后备) /var/lib/docker
    dynamic-config-dir Kubelet将使用此目录检查下载的配置并跟踪配置运行状况。如果该目录尚不存在,Kubelet将创建该目录。路径可以是绝对的或相对的,相对路径从Kubelet的当前工作目录开始。提供此参数会启用动态Kubelet配置。必须启用DynamicKubeletConfig功能门才能传递此参数,该功能是测试版。 true
    enable-server 启用Kubelet的服务器 true
    exit-on-lock-contention kubelet是否应在锁定文件争用时退出
    experimental-allocatable-ignore-eviction 设置为'true'时,计算Node Allocatable时将忽略Hard Eviction Thresholds。有关详细信息,请参阅https://kubernetes.io/docs/tasks/administer-cluster/reserve-compute-resources/ false
    experimental-bootstrap-kubeconfig (DEPRECATED:使用--bootstrap-kubeconfig)
    experimental-check-node-capabilities-before-mount [实验性] 如果设置为true,kubelet将在执行mount之前检查底层节点是否需要组件(二进制文件等)
    experimental-kernel-memcg-notification 如果启用,则kubelet将与 kernel memcg notification 集成,以此确定是否超出内存逐出阈值而不是靠轮询。
    experimental-mounter-path [实验性]mounter二进制文件路径。 为空则使用默认安装
    feature-gates 一组key = value对,用于描述特征处于alpha / experimental状态。
    healthz-port 本地 healthz 端点的端口,设置为 0 将禁用 10248
    host-ipc-sources Kubelet 允许 pod 使用 host ipc 的命名空间列表。 (已弃用:将在以后的版本中删除) [*]
    host-network-sources Kubelet允许pod使用主机网络的列表(已弃用:将在以后的版本中删除) [*]
    host-pid-sources Kubelet允许pod使用主机pid命名空间的列表 [*]
    hostname-override 如果非空,则使用此字符串作为标识而不是实际的主机名。如果设置了--cloud-provider,则云提供商决定节点的名称(请参阅云提供商文档以确定是否以及如何使用主机名)。
    housekeeping-interval 容器housekeepings间隔时间 10s
    image-pull-progress-deadline 如果在此时间之前没有 pulling 进度,pulling images 将被取消。 此参数仅在 container-runtime 设置为 docker 时有效。 1m
    image-service-endpoint [实验性质] 远程images service的端点。 如果未指定,则默认情况下与container-runtime-endpoint相同。 目前支持unix socket和tcp端点
    keep-terminated-pod-volumes 在pod终止后,将终止的pod卷安装到节点上。可用于调试与 volumes 相关的问题。 (已弃用:将在以后的版本中删除)
    kube-api-burst 在与kubernetes apiserver通信时使用Burst 10
    kubeconfig kubeconfig文件的路径,指定如何连接到API server。 使用--kubeconfig启用API服务器模式,省略--kubeconfig启用独立模式。该路径指向的 kubelet.kubeconfig 文件在第一次启动 kubelet 之前并不存在,当通过CSR请求后会自动生成kubelet.kubeconfig文件
    lock-file <警告:Alpha功能>用于kubelet的文件路径,用作锁定文件。
    master-service-namespace 应将kubernetes主服务注入pod的命名空间(DEPRECATED:将在以后的版本中删除此参数。) default
    maximum-dead-containers 全局保留的容器的最大旧实例数。每个容器占用一些磁盘空间。设置为负数表示禁用此功能。(已弃用:改为使用--eviction-hard或--eviction-soft。将在以后的版本中删除。) -1
    maximum-dead-containers-per-container 每个容器保留的最大旧实例数。 每个容器占用一些磁盘空间。(已弃用:请使用--eviction-hard或--eviction-soft。将来的版本将被删除。) 1
    minimum-container-ttl-duration 已完成容器在垃圾回收之前的最小年龄。 示例:'300ms','10s'或'2h45m'(已弃用:使用--eviction-hard或--eviction-soft代替。将在未来版本中删除。)
    network-plugin <警告:Alpha功能> kubelet / pod生命周期中的各种事件调用的网络插件。此参数仅在container-runtime设置为docker时有效。
    network-plugin-mtu <警告:Alpha功能>要传递给网络插件的MTU,以覆盖默认值。设置为0表示 MTU 使用默认的1460。此参数仅在container-runtime设置为docker时有效。
    node-ip 节点的IP地址。如果设置,则kubelet将使用此IP地址作为节点
    node-labels <警告:Alpha功能>在集群中注册节点时要添加的标签。 'kubernetes.io'命名空间中的标签必须以允许的前缀(kubelet.kubernetes.io,node.kubernetes.io)开头,或者在特定允许的集合中(beta.kubernetes.io/arch,beta.kubernetes.io/ instance-type,beta.kubernetes.io / os,failure-domain.beta.kubernetes.io / region,failure-domain.beta.kubernetes.io / zone,failure-domain.kubernetes.io / region,failure-domain。 kubernetes.io/zone,kubernetes.io/arch,kubernetes.io/hostname,kubernetes.io/instance-type,kubernetes.io/os)
    node-status-max-images <警告:Alpha功能> Node.Status.Images中上报的最大 images 数。指定-1表示没有上限。 50
    non-masquerade-cidr 此范围之外的IP流量将使用IP伪装。设置为'0.0.0.0/0'表示永不伪装。 (已弃用:将在以后的版本中删除) 10.0.0.0/8
    pod-infra-container-image 每个pod中的network / ipc命名空间容器会使用的映像。此参数仅在container-runtime设置为docker时有效。 k8s.gcr.io/pause:3.1
    provider-id 用于标识 machine database 中节点的唯一标识符,即cloudprovider
    really-crash-for-testing 如果是,则当恐慌发生时崩溃。用于测试。
    redirect-container-streaming 启用容器流重定向。如果为false,则kubelet将在apiserver和容器运行时之间代理容器流数据;如果为true,则kubelet会将http重定向返回给apiserver,而apiserver将直接访问容器运行时。代理方法更安全,但引入了一些开销。重定向方法性能更高,但安全性较低,因为apiserver和容器运行时之间的连接可能无法进行身份验证。
    register-node 用apiserver注册节点。如果未提供--kubeconfig,则此参数无效,因为Kubelet将没有可注册的apiserver。 true
    register-schedulable 将节点注册为可调度的。如果register-node为false,则不会有任何影响。(DEPRECATED:将在以后的版本中删除) true
    register-with-taints 用给定的taints列表注册节点(“<key> = <value>:<effect>”)。如果register-node为false,则为no-op。
    root-dir 管理kubelet文件的路径(volume mounts 等) /var / lib / kubelet
    runonce 如果为true,则在从静态pod文件或远程url生成pod后退出。仅限--enable-server
    runtime-cgroups 要创建和运行runtime里的cgroup的可选名称。
    seccomp-profile-root <警告:Alpha功能> seccomp配置文件的目录路径。 / var / lib / kubelet / seccomp
    stderrthreshold >=此严重性的日志会输出到stderr 2
    volume-plugin-dir 搜索第三方卷插件的完整路径 / usr / libexec / kubernetes / kubelet-plugins / volume / exec / 1m0s
    弃用参数 =========================此参数应通过Kubelet的--config参数指定的配置文件设置=========================================== =====
    address Kubelet提供服务的IP地址。 0.0.0.0
    anonymous-auth 启用对访问 API server 安全端口的匿名请求。没有被其他身份验证方法拒绝的请求被视为匿名请求。匿名请求在系统中的用户名:anonymous,组名:unauthenticated。 true
    authentication-token-webhook 使用 TokenReview API 确定承载令牌的身份验证。
    authentication-token-webhook-cache-ttl 缓存来自webhook令牌验证器的响应的持续时间。 2m
    authorization-webhook-cache-authorized-ttl 缓存 webhook 授权程序的“授权”响应的持续时间。 5m0s
    authorization-webhook-cache-unauthorized-ttl 缓存 webhook 授权程序的“未授权”响应的持续时间。 30s
    authorization-mode kubelet服务器的授权模式(AlwaysAllow,Webhook)Webhook模式使用SubjectAccessReview API来确定授权。 AlwaysAllow
    cgroup-driver kubelet 用于操作主机上的cgroup的驱动程序。可能的值:'cgroupfs','systemd' cgroupfs
    cgroup-root pod的可选root cgroup。这由容器运行时以尽力而为的方式处理。 使用容器运行时默认值
    cgroups-per-qos 如果最高等级的QoS和pod cgroup已创建,则启用 creation of QoS cgroup hierarchy。 true
    chaos-chance 如果> 0.0,则引入随机客户端错误和延迟。用于测试。
    client-ca-file 启用客户端证书认证。该参数引用的文件中必须包含一个或多个证书颁发机构,用于验证提交给该组件的客户端证书。如果客户端证书已验证,则用其中的 Common Name 作为请求的用户名
    cluster-dns DNS服务器IP地址列表。对于具有“dnsPolicy = ClusterFirst”的Pod,此值用于容器DNS服务器。注意:列表中的所有DNS服务器必须提供相同的记录集,否则集群的名称解析可能无法正常工作。无法保证可以联系哪个DNS服务器进行名称解析。
    cluster-domain 集群的域名。如果设置,除了主机的搜索域之外,kubelet还将配置所有容器以搜索此域
    container-log-max-size <警告:测试版功能>设置容器日志文件回滚前的最大大小(例如10Mi)。此参数只能与--container-runtime = remote一起使用。
    contention-profiling 如果启用了 profiling,则启用锁争用性分析
    cpu-cfs-quota 为指定CPU限制的容器强制执行CPU CFS配额 true
    cpu-cfs-quota-period 设置CPU CFS配额周期值cpu.cfs_period_us,默认为Linux内核默认值 100ms
    cpu-manager-policy CPU管理器策略 none 或者 static none
    cpu-manager-reconcile-period <警告:Alpha功能> CPU Manager协调期。 如果未提供,则默认为NodeStatusUpdateFrequency 10s
    enable-controller-attach-detach 使Attach / Detach控制器能够调度该节点的volume的 Attach/Detach true
    enable-debugging-handlers 启用服务器端点以进行日志收集和本地运行容器、命令 true
    enforce-node-allocatable kubelet强制执行的节点可分配强制执行级别的逗号分隔列表。可选项是'none','pods','system-reserved'和'kube-reserved'。如果指定后两个选项,则还必须分别设置'--system-reserved-cgroup'和'--kube-reserved-cgroup'。如果指定'none',不用设置其他选项。有关详细信息,请参阅https://kubernetes.io/docs/tasks/administer-cluster/reserve-compute-resources/ pods
    event-burst 突发事件记录的最大大小,暂时允许事件记录突发到此数字,同时不超过事件qps。仅在--event-qps> 0 时有效 10
    event-qps 如果> 0,则将每秒的创建事件数限制为此值。如果为0,无限制。 5
    eviction-hard 一组 eviction thresholds(例如memory.available <1Gi),如果到了阈值则会触发pod驱逐。 imagefs.available <15%,memory.available <100Mi,nodefs.available <10%,nodefs.inodesFree <5%
    eviction-max-pod-grace-period 当因达到软驱逐阈值时终止pod前的最大宽限时间。如果为负数,则推迟到pod指定的值。
    eviction-minimum-reclaim 当资源有压力,执行pod驱逐时,kubelet将回收的最小资源量。
    eviction-pressure-transition-period 在驱逐压力之前, kubelet必须等待的时间。 5m
    eviction-soft 一组驱逐阈值(例如memory.available <1.5Gi),如果在相应的宽限期内遇到,将触发一个pod驱逐。
    eviction-soft-grace-period 一组驱逐宽限期(例如memory.available = 1m30s),对应于软驱逐阈值在触发吊舱驱逐之前必须保持多长时间。
    experimental-fail-swap-on DEPRECATED:请改用--fail-swap-on。 true
    file-check-frequency 检查新数据的配置文件的间隔时间 20s
    hairpin-mode kubelet setup hairpin NAT 模式。这允许服务的端点在尝试访问自己的服务时负载平衡回自身。有效值为“promiscuous-bridge”,“hairpin-veth”和“none”。 promiscuous-bridge
    healthz-bind-address healthz服务器的IP地址(对于所有IPv4接口设置为0.0.0.0,对于所有IPv6接口设置为:: 127.0.0.1
    http-check-frequency duration 检查新数据的http之间的持续时间 20s
    image-gc-high-threshold 运行 image 垃圾回收后的磁盘使用百分比。值必须在[0,100]范围内,设置为 100 可禁用图像垃圾回收 85
    image-gc-low-threshold 从未运行 image 垃圾回收前的磁盘使用百分比。垃圾收集的最低磁盘使用率。值必须在[0,100]范围内,并且不应大于--image-gc-high-threshold。 80
    iptables-drop-bit 用于标记丢弃数据包的 fwmark 位。必须在[0,31]范围内。 15
    iptables-masquerade-bit 用于标记SNAT数据包的fwmark空间位。必须在[0,31]范围内。此参数应与kube-proxy中的相应参数匹配。 14
    kube-api-content-type 发送到apiserver的请求的内容类型。 application / vnd.kubernetes.protobuf
    kube-api-qps 与 kubernetes apiserver 通信时使用的QPS 5
    kube-reserved 一组ResourceName = ResourceQuantity 对(例如cpu = 200m,memory = 500Mi,ephemeral-storage = 1Gi), 表示为kubernetes系统组件保留的资源。前支持根文件系统的cpu,内存和本地临时存储。有关更多详细信息,请参见http://kubernetes.io/docs/user-guide/compute-resources none
    kube-reserved-cgroup 最高等级cgroup的名称,用于管理通过“--kube-reserved”参数保留计算资源的kubernetes组件。 ''
    kubelet-cgroups 用于创建和运行Kubelet的cgroups的可选名称。
    make-iptables-util-chains 如果为true,kubelet将确保主机上使用 iptables 规则。 true
    manifest-url 用于访问要运行的其他Pod规范的URL
    manifest-url-header HTTP header 列表,用于访问时网址提供给--manifest-url。可以以相同的顺序添加具有相同名称的多个 header。可以重复调用此参数。
    max-open-files Kubelet进程可以打开的文件数。 1000000
    max-pods 可以在此Kubelet上运行的Pod数。 110
    minimum-image-ttl-duratio 未使用的 image 在被垃圾回收之前的最小年龄。 示例:'300ms','10s'或'2h45m'。 2m
    node-status-update-frequency 指定kubelet将节点状态发布到master的频率。该参数必须与nodecontroller中的nodeMonitorGracePeriod一起使用。 10s
    oom-score-adj kubelet进程的oom-score-adj值。值必须在[-1000,1000]范围内 -999
    pod-cidr 用于pod IP地址的CIDR,仅适用于单机模式。如果启动了集群,该值从 master 获得。对于IPv6,分配的最大IP数为65536
    pod-manifest-path 包含要运行的静态pod文件的路径,或单个静态pod文件的路径。以点开头的文件将被忽略。
    pod-max-pids <警告:Alpha功能>设置每个pod的最大进程数。 -1
    pods-per-core 可以在此Kubelet上运行的每个核的Pod数。此Kubelet上的Pod总数不能超过max-pods。值为0表示禁用此限制。
    port Kubelet提供服务的端口。 10250
    protect-kernel-defaults 内核优化的默认kubelet行为。如果设置,则当任何内核可调参数与kubelet默认值不同时,kubelet抛出错误。
    qos-reserved <警告:Alpha功能>一组ResourceName = Percentage对(例如,内存= 50%),用于描述如何在QoS级别保留pod资源请求。目前仅支持内存。需要启用QOSReserved功能门。
    read-only-port Kubelet的只读端口,无需认证/授权即可服务(设置为0以禁用)(DEPRECATED:此参数应通过指定的配置文件设置Kubelet的--config参数..) 10255
    registry-burst 暂时允许 bursty pulls的最大大小,不超过registry-qps。仅在--registry-qps> 0 时使用 10
    registry-qps 如果> 0,允许registry pull QPS 达到此值。如果为0,无限制。 5
    resolv-conf 用作容器DNS解析配置的基础解析器配置文件。 /etc/resolv.conf
    rotate-certificates <警告:测试版功能> 证书过期时,从kube-apiserver请求新证书来自动更新kubelet客户端证书。
    rotate-server-certificates 在证书过期时,通过从kube-apiserver自动请求轮换服务端证书。需要启用RotateKubeletServerCertificate功能门,并批准提交 CertificateSigningRequest 对象。
    runtime-request-timeout 除了长时间运行的请求之外的所有运行时请求的超时时间 - pull,logs,exec和attach。 超时时,kubelet将取消请求,抛出错误并稍后重试。 2m
    serialize-image-pulls 一次拉一个 image。不建议更改。 true
    streaming-connection-idle-timeout 连接自动关闭之前,流连接可以空闲的最长时间。 0表示不做限制。 4h0m0s
    sync-frequency 同步运行容器和config的时间间隔 1m0s
    system-cgroups / cgroups的可选名称,用于放置/.中未包含在cgroup下的所有非内核进程。空表示没有容器。回滚参数需要重新启动。
    system-reserved 一组ResourceName = ResourceQuantity对(例如cpu = 200m,memory = 500Mi,ephemeral-storage = 1Gi),表示为非kubernetes组件保留的资源。目前仅支持cpu和内存。有关更多详细信息,请参见http://kubernetes.io/docs/user-guide/compute-resources none
    system-reserved-cgroup 最高级cgroup的名称,用于管理通过'--system-reserved'参数保留计算资源的非kubernetes组件。Ex. '/system-reserved'。 ''
    tls-cert-file 包含HTTPS的默认x509证书的文件。 CA证书,如果有的话,在服务器证书之后连接。如果启用了HTTPS服务,但是 --tls-cert-file和--tls-private-key-file 未提供,则会为公共地址生成自签名证书和密钥,并将其保存到--cert-dir指定的目录中。
    tls-cipher-suites 密码套件列表。如果省略,将使用默认的Go密码套件。
    tls-private-key-file 与 --tls-cert-file 匹配的默认x509私钥。
    volume-stats-agg-period 指定kubelet计算和缓存所有pod和卷的卷磁盘使用的时间间隔。 要禁用卷计算,请设置为0.
    弃用参数 =========================此参数是一个错误的cadvisor参数,它将遵循标准的CLI弃用时间被删除==================== =====
    application-metrics-count-limit 每个容器要存储的最大应用程序metrics数, 100
    boot-id-file 用于检查boot-id的文件列表,使用匹配的第一个 。 /proc/sys/kernel/random/boot_id
    container-hints 容器提示文件的位置 /etc/cadvisor/container_hints.json
    containerd 容器化端点 unix:///var/run/containerd.sock
    docker docker 端点 unix:///var/run/docker.sock
    docker-env-metadata-whitelist docker容器需要收集的环境变量键列表
    docker-only 除根数据库之外,只报告给docker容器
    docker-tls 使用TLS连接到docker
    docker-tls-ca 可信CA的路径 ca.pem
    docker-tls-cert 客户端证书的路径 cert.pem
    docker-tls-key 密钥路径 key.pem
    enable-load-reader 是否启用cpu load reader
    event-storage-age-limit 存储每种事件的最长时间。是以逗号分隔的键值列表,其中键是事件类型(例如:creation,oom)或“default”,值是持续时间。默认值适用于所有未指定的事件类型 0
    event-storage-event-limit 存储的每种事件最大数(每种类型)。 Value是以逗号分隔的键值列表,其中键是事件类型(例如:creation,oom)或“default”,值是整数。默认值适用于所有未指定的事件类 0
    global-housekeeping-interval 全局内存间隔 1m
    log-cadvisor-usage 是否记录cAdvisor容器的使用情况
    machine-id-file 检查machine-id的文件列表,使用匹配的第一个。 /etc/machine-id,/var/lib/dbus/machine-id
    storage-driver-buffer-duration 存储驱动程序中的写入将在此期间缓冲,并作为一个事务提交到非内存后端 1m0s
    storage-driver-db 数据库名称 cadvisor
    storage-driver-host 数据库host:port localhost:8086
    storage-driver-password 数据库密码 root
    storage-driver-secure 启用与数据库的安全连接
    storage-driver-table 表名称 stats
    storage-driver-user 数据库用户名 root
    全局参数 (同 API-SERVER) ======================================================================================================== =====
    alsologtostderr 日志信息同时输出到stderr及文件
    help 帮助
    log-backtrace-at 当日志命中行文件时:N,触发堆栈跟踪 0
    log-dir 如果非空,则在此目录中写入日志文件
    log-file 如果非空,请使用此日志文件
    log-flush-frequency 日志刷新之间的最大秒数 5s
    logtostderr 日志信息输出到stderr 而不是文件 true
    stderrthreshold 等于或高于此阈值的日志发布到stderr 2
    v 日志的日志级别
    version版本 打印版本信息并退出 true
    vmodule 模式列表=N文件筛选日志记录

    kubelet 认证授权

    参考 https://jimmysong.io/kubernetes-handbook/guide/kubelet-authentication-authorization.html

    Kubelet 的 HTTPS 端点对外暴露了用于访问不同敏感程度数据的 API,并允许在节点或者容器内执行不同权限级别的操作。
    认证成功后,kubelet会对请求授权。默认授权模式为 AlwaysAllow,允许所有请求。

    认证方式1. 匿名访问

    所有未被配置的其他身份验证方法拒绝的,对 kubelet 的 HTTPS 端点的请求将被视为匿名请求,并被授予 system:anonymous 用户名和 system:unauthenticated 组。
    禁用匿名访问:启动 kubelet 时指定 --anonymous-auth=false

    认证方式2. 启用 X509 客户端证书身份验证:

    • 启动 kubelet 时指定 --client-ca-file 参数,提供 CA bundle 以验证客户端证书
    • 启动 apiserver 时指定 --kubelet-client-certificate 和 --kubelet-client-key 参数

    认证方式3. 启用 API bearer token(包括 service account token):

    • 确保在 API server 中开启了 authentication.k8s.io/v1beta1 API 组。
    • 启动 kubelet 时指定 --authentication-token-webhook, --kubeconfig
    • Kubelet 在配置的 API server 上调用 TokenReview API 以确定来自 bearer token 的用户信息

    授权方式: 细分访问 kubelet API,将授权委托给 API server:

    • API server 中启用了 authorization.k8s.io/v1beta1 API 组, 指定了 --kubelet-client-certificate 和 --kubelet-client-key 参数并授权了如下属性:
    verb=*, resource=nodes, subresource=proxy
    verb=*, resource=nodes, subresource=stats
    verb=*, resource=nodes, subresource=log
    verb=*, resource=nodes, subresource=spec
    verb=*, resource=nodes, subresource=metrics
    
    • 启动 kubelet 时指定 --authorization-mode=Webhook、 --kubeconfig
      kubelet 在配置的 API server 上调用 SubjectAccessReview API,以确定每个请求是否被授权
    • kubelet 使用与 apiserver 相同的方法来授权 API 请求。

    相关文章

      网友评论

          本文标题:kubelet 参数 kubernetes v1.13.0

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