- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我一直在尝试在 kubernetes API 中实现 ABAC 授权,在我的 kube-api list 文件中使用以下参数。
- --authorization-mode=ABAC
- --authorization-policy-file=/etc/kubernetes/auth/abac-rules.json
以及abac-rulse.json文件中的以下内容。
{"apiVersion": "abac.authorization.kubernetes.io/v1beta1", "kind": "Policy", "spec": {"user":"*", "nonResourcePath": "*", "readonly": true}}
{"apiVersion": "abac.authorization.kubernetes.io/v1beta1", "kind": "Policy", "spec": {"user":"admin", "namespace": "*", "resource": "*", "apiGroup": "*" }}
{"apiVersion": "abac.authorization.kubernetes.io/v1beta1", "kind": "Policy", "spec": {"user":"scheduler", "apiGroup": "*", "namespace": "*", "resource": "*", "readonly": false}}
{"apiVersion": "abac.authorization.kubernetes.io/v1beta1", "kind": "Policy", "spec": {"user":"kubelet", "apiGroup": "*", "namespace": "*", "resource": "*", "readonly": false }}
但是,kubelet 似乎无法连接到 api 服务器。我读到用户名取自用于验证连接的证书中 -subject 的 CN 字段,see here .在这种情况下,这是软管的 fqdn,我也尝试过但没有成功。
知道我做错了什么吗?
提前干杯
编辑:
我使用的是 Kubernetes 版本 1.2.2,包括 kubectl 和 hyperkube docker 镜像。
最佳答案
找出答案,在此处记录下来以供与 ABAC 有相同问题的其他人使用。
kubelet 用户在 worker 配置中定义,在我的例子中是一个 yaml 文件,我存储在这里 - /etc/kubernetes/worker-kubeconfig.yaml
,其内容如下所示下面:
apiVersion: v1
kind: Config
clusters:
- name: default
cluster:
server: https://10.96.17.34:8443
certificate-authority: /etc/kubernetes/ssl/ca.pem
users:
- name: kubelet
user:
client-certificate: /etc/kubernetes/ssl/worker.pem
client-key: /etc/kubernetes/ssl/worker-key.pem
contexts:
- context:
cluster: default
user: kubelet
name: kubelet-context
current-context: kubelet-context
所以它连接的用户是kubelet
。
在我的例子中,我使用 CN=${MINION_FQDN} 创建了我的证书,由于这与“kubelet”不匹配,因此不符合 ABAC 策略。我使用以下参数重新生成了我的证书,现在节点已成功验证 :)
# Create worker key
openssl genrsa -out $OUT/${WORKER_HOSTNAME}/worker-key.pem 2048
#Creating Worker CSR...
WORKER_FQDN=${WORKER_FQDN} WORKER_IP=${WORKER_IP} openssl req -new -key $OUT/${WORKER_HOSTNAME}/worker-key.pem -out $OUT/${WORKER_HOSTNAME}/worker.csr -subj "/CN=kubelet" -config $SSL_CONFIG
# Creating Worker Cert
WORKER_FQDN=${WORKER_FQDN} WORKER_IP=${WORKER_IP} openssl x509 -req -in $OUT/${WORKER_HOSTNAME}/worker.csr -CA $CA/ca.pem -CAkey $CA/ca-key.pem -CAcreateserial -out $OUT/${WORKER_HOSTNAME}/worker.pem -days 365 -extensions v3_req -extfile $SSL_CONFIG
其中重要的部分是:
-subj "/CN=kubelet"
希望这对其他人有帮助。
关于authentication - kubernetes kubelet 在联系 kubernetes API 时使用什么用户名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37786244/
我正在尝试 enable a FlexVolume driver在 Ubuntu 上的 Microk8s 上。 为此,我似乎必须编辑 kubelet.service 文件。这应该存储在/etc/sys
我正在裸机 Debian 上运行 kubernetes(目前有 3 个 master、2 个worker、PoC)。我按照 k8s-the-hard-way 进行操作,但在 kubelet 上遇到了以
cgroup driver的配置在/etc/systemd/system/kubelet.service.d/10-kubeadm.conf Environment="KUBELET_CGROUP_A
环境: Kubernetes 1.12.2 Docker 18.9.0 microk8s.kubectl $ k 得到所有 NAME
Kubernetes 的节点可以按照节点的资源容量进行调度,默认情况下 Pod 能够使用节点全部可用容量。这样就会造成一个问题,因为节点自己通常运行了不少驱动 OS 和 Kubernetes 的
在运行 kubectl get nodes 等命令时出现以下错误: 与服务器 :6443 的连接被拒绝 - 您是否指定了正确的主机或端口? 我运行了 systemctl status kubelet.
我在 AWS 上安装了一堆新的 CentOS 服务器。服务 kubelet 尝试启动会污染日志文件(var/log/messages),但由于我没有用它,我想将其删除。这是 CentOS 的一个可选组
我在 kubelet 删除 docker 图像时遇到问题,因为它认为磁盘已满: Dec 29 18:00:14 hostname kubelet: I1229 18:00:14.548513 13
我想知道kubelet如何与docker容器通信。此配置在哪里定义?我进行了很多搜索,但没有发现任何有用的信息。我正在使用https kube API服务器。我可以创建 pods ,但不会产生容器吗?
https://kubernetes.io/docs/tasks/administer-cluster/reconfigure-kubelet/嗨,我在学习本教程时遇到了一些麻烦。建议使用 confi
我的两个集群节点获得 Kubelet stopped posting node status在 kubectl describe node有时。在该节点的日志中,我看到了这一点: Dec 11 12:
我在某些 kubernetes 节点上的 CentO 上遇到了 OOM 问题。我想像他们在演示中那样设置它: --kube-reserved is set to cpu=1,memory=2Gi,ep
Kubelet 出于对节点的保护,允许在节点资源不足的情况下,开启对节点上 Pod 进行驱逐的功能。最近对 Kubelet 的驱逐机制有所研究,发现其中有很多值得学习的地方,总结下来
如果我运行 systemctl restart kubelet它会影响其他正在运行的节点吗?它会停止集群吗?你能预见任何影响吗? 任何帮助,将不胜感激! 最佳答案 在回答之前,小声明:重启不是由于对
我正在尝试在 fedora 24/lxc 容器上启动 kubelet,但收到一个似乎与 libvirt/iptables 相关的错误 Docker(使用 dnf/yum 安装): [root@node
我尝试使用 堆叠我的 kubeadm 集群三 大师。我从我的 init 命令收到这个问题... [kubelet-check] Initial timeout of 40s passed. Unfor
我在我的 Ubuntu 机器上安装了 Kubernetes。出于某些调试目的,我需要查看 kubelet 日志文件(如果有任何此类文件)。 我看过 /var/logs但我找不到这样的文件。那可能在哪里
平台:OEL 7.7 + kube 1.15.5 + docker 19.03.1 我们正在使用容器化 kubelet 方法在 k8s 上构建一个纠删码对象存储。我们很难提出可行的磁盘生命周期方法。就
我有一个来自 kubelet 的奇怪行为,在集群启动后不久 kubelet 没有注册到 API 服务器。 有趣的是,如果我重新启动 kubelet 守护程序,它会正确注册并且一切都按预期工作,这让我相
我只想知道你们中的任何人以前是否曾经听过本教程并获得成功。 我不知道为什么,但是每当我在MINION端重新启动并启用服务时,它总是失败,并显示错误“kubelet.service的依赖项作业失败”,当
我是一名优秀的程序员,十分优秀!