kubelet 参数 kubernetes v1.13.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 请求。
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 151,511评论 1 330
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 64,495评论 1 273
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 101,595评论 0 225
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 42,558评论 0 190
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 50,715评论 3 270
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 39,672评论 1 192
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,112评论 2 291
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 29,837评论 0 181
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 33,417评论 0 228
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 29,928评论 2 232
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,316评论 1 242
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 27,773评论 2 234
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,253评论 3 220
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 25,827评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,440评论 0 180
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 34,523评论 2 249
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 34,583评论 2 249

推荐阅读更多精彩内容