kubernetes - webhook 的文件存在,但 cube-api 因文件不存在而失败
问题描述
我正在尝试使用 webhook 配置 Kubernetes,我创建了文件,并将其放在/etc/kubernetes/webhook.yaml
.
我修改/etc/kubernetes/manifests/kube-apiserver.yaml
并添加了 flag - --authentication-token-webhook-config-file=/etc/kubernetes/webhook.yaml
。
当 kubelet 发现,manifest 文件被修改,它必须重新启动 api(或销毁并创建新的 api 容器)时,它失败了no such file or directory
2021-07-16T17:26:49.218961383-04:00 stderr F I0716 21:26:49.218777 1 server.go:632] external host was not specified, using 172.17.201.214
2021-07-16T17:26:49.219614716-04:00 stderr F I0716 21:26:49.219553 1 server.go:182] Version: v1.20.5
2021-07-16T17:26:49.642268874-04:00 stderr F Error: stat /etc/kubernetes/webhook.yaml: no such file or directory
但是当我检查文件时,它存在。
[root@kubemaster01 ~]# ls -al /etc/kubernetes/webhook.yaml
-rw-r--r-- 1 root root 272 Jul 13 16:14 /etc/kubernetes/webhook.yaml
我将文件权限更改为600
但仍然无法正常工作。
我是否必须设置一些东西才能让 Kubelet 访问这个文件?
解决方案
我忘记将主机目录挂载到 Kube-api 服务器。
如果我们添加挂载部分,它将起作用。
/etc/kubernetes/manifests/kube-apiserver.yaml
spec:
containers:
...
...
volumeMounts:
...
...
- mountPath: /etc/kubernetes
name: webhook
readOnly: true
...
...
...
...
volumes:
...
...
- hostPath:
path: /etc/kubernetes
type: DirectoryOrCreate
name: webhook
...
推荐阅读
- windows - 如何在Windows中删除系统路径变量
- ios - 以编程方式为所有 iPhone 和 iPad 设备的横向和纵向模式下的 UIButtons 设置角半径
- c++ - 从 C++ 中的函数退出
- swift - Swift 中属性观察者的性能和资源成本是多少?
- python - 如何修复涉及保存后信号的 createsuper 错误
- go - 如何覆盖重载变量
- c# - 读取 7-zip 而不解压到文件
- sql - SQL 查询与 UNION 条件的比较
- jupyter-notebook - PyTorch 正在使 jupyter 笔记本崩溃,同时使用 nn 模块计算损失?
- sql - 如何在选择多列时按 1 列分组