问题标签 [kube-apiserver]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
365 浏览

kubernetes - 服务帐户不尊重其集群角色

我用一个只有 READ 访问权限的用户创建了一个上下文,但是当我以这个用户身份登录时,我仍然可以做任何我想做的事情,比如部署和杀死 pod 等等......为什么会这样?


我跟着这个教程

1)首先我创建了一个服务帐户:
kubectl create sa myserviceaccount

2)现在我想要一个具有最低权限的角色(只是 READ),所以我将从 kube-system 中获取一个名为“ view ”的角色

3) 现在我必须创建一个 clusterRoleBinding 来将服务帐户绑定到角色“视图”

4)现在我们必须找到相关的秘密名称

5)将显示的令牌保存在某处(稍后使用)


现在我们已经拥有了所需的一切,我们可以继续使用 Kubernetes 客户端并创建上下文。

6) 在 kubeconfig 中配置集群: kubectl config set-cluster myawesomecluster --server=IP-OF-MY-CLUSTER

7) 创建凭证:

8) 创建上下文

塔达啊!

现在已经设置了上下文,我应该能够读取每个资源但不能创建任何资源。不幸的是,我仍然可以使用 kubectl 进行部署,甚至可以删除 pod 等

这应该让我拒绝访问: kubectl create -f someFileWithDeployment

我究竟做错了什么 ?
谢谢 !


编辑 - 添加命名空间和配置视图的输出以进行调试:


编辑 2:显示 get pod kube-apiserver-nodemaster1 的输出

0 投票
1 回答
928 浏览

kubernetes - OpenShift 上的 kube-apiserver

我是 OpenShift 和 Kubernetes 的新手。

我需要在现有 OpenShift 环境中访问 kube-apiserver

我怎么知道 kube-apiserver 已经安装,或者如何安装它?

我检查了所有容器,甚至没有这样的路径 /etc/kubernetes/manifests。

这是所有集群上的 docker 进程列表,它可以隐藏在其中一个之后吗?

k8s_fluentd-elasticseark8s_POD_logging k8s_POD_tiller-deploy k8s_api_master-api-ip-...ec2.internal_kube-system k8s_etcd_master-etcd-...ec2.internal_kube-system k8s_POD_master-controllers k8s_POD_master-api-ip- k8s_POD_kube-state k8s_kube-rbac-proxy k8s_POD_node-exporter k8s_alertmanager-proxy k8s_config-reloader k8s_POD_alertmanager_openshift-monitoring k8s_POD_prometheus k8s_POD_cluster-monitoring k8s_POD_heapster k8s_POD_prometheus k8s_POD_webconsole k8s_openvswitch k8s_POD_openshift-sdn k8s_POD_sync k8s_POD_master-etcd

0 投票
1 回答
557 浏览

kubernetes - 如何使用 kubectl 代理访问集群外的服务?

当我们在 kubernetes 中使用 kubeadm 启动集群时,服务的.yaml文件如下所示:

在所有 pod 和服务运行后,我运行kubectl proxy它,它说:

因此,当我想访问此服务时,例如:

它只是在集群内可以访问!如何访问集群外的服务?

0 投票
1 回答
117 浏览

https - 为什么是http而不是https?kubectl cluster-info "kubernetes master running"

我已经用谷歌搜索了几个小时,但似乎找不到信息。这可能是一个简单的问题......我的问题是:

我有一个启动 K8s 的大脚本。当一切都启动并运行时,kubectl cluster-info我得到了kubernetes master is running on http://...。我在网上阅读的每个例子都说结果应该是https://...

我的问题是什么文件/yaml/property/etc 使 kubernetes 主运行 http vs https?

我在我的 kube-apiserver.yaml 文件中定义了两个端口(80/443)。我是否必须在 apiserver 中使用“insecure-port=0”?或者没有这个可以master运行https吗?

0 投票
1 回答
96 浏览

kubernetes - 配置主 api 服务器以检查警戒节点并在没有作业运行时销毁

团队,

我们需要在 K8s 集群的工作节点上推出一些驱动程序,我们的流程如下:

  1. 警戒线节点[不再调度]
  2. 等待作业完成
  3. 破坏

有没有一种方法可以使用 K8s 选项本身自动执行此操作,而不是每次都编写一些 bash 脚本来进行这些检查,因为我们不知道 pod 何时完成。那么,我们是否可以配置主 API 服务器来检查警戒节点并在它没有运行作业时销毁?

0 投票
1 回答
1372 浏览

kubernetes - kube-apiserver healthz 调用中检查了什么?

我在 1.10.11 K8s 版本中启动 kube-apiserver 时遇到不少故障。它的健康检查返回 poststarthook/rbac/bootstrap-roles 失败。很烦人,出于安全原因,原因是“原因隐瞒”我怎么知道这个检查是什么?我是否缺少一些权限/绑定?我正在从 1.9.6 升级。发行说明没有明确提到这样的事情是必需的。

0 投票
1 回答
7088 浏览

kubernetes - 无需 kubectl 代理即可访问 Kubernetes Dashboard

如果我移动一个相关的配置文件并运行kubectl proxy它,它将允许我通过这个 URL 访问 Kubernetes 仪表板:

但是,如果我尝试直接访问节点,而不使用kubectl proxy,我将得到 403 Forbidden。

我们的 kubernetes 集群隐藏在用户需要通过 VPN 接入的专用网络中;此外,在对 VPN 进行身份验证后,只有我们中的一些人可以与我们每个集群的主节点通信。因此,运行kubectl proxy是一个多余的步骤,为每个集群选择合适的配置文件是一个额外的痛苦,尤其是当我们想要比较不同集群的状态时。

需要更改哪些内容才能允许“匿名”HTTP 访问这些已经安全的 kubernetes 主节点的仪表板?

0 投票
1 回答
2928 浏览

docker - kube-apiserver.yaml 在哪里?

我想向kube-apiserver添加一个标志。

于是我在主节点上登录了 kube-apiserver 的 docker 容器,开始执行寻找kube-apiserver.yaml. 我听说它位于/etc/kubernetes/manifests/kube-apiserver.yaml.

可惜没了!我在 /etc/kubernetes/" 文件夹中只有一个 "SSL" 目录,并且 kube-apiserver.yaml 无处可见......


仅供参考:
使用 Ansible playbook (kubespray) 安装 kubernetes 1.12.2。
有 6 个节点和 3 个主节点。

谢谢你的帮助

0 投票
1 回答
1279 浏览

kubernetes - Kubernetes.default nslookup 无法从不同的命名空间解析

我面临kubernetes.default.svc.cluster.local从外部default命名空间解决的问题

我在每个命名空间上运行两个busybox:1.30 pod,并且名称仅从default命名空间成功解析

我在气隙环境中运行 CentOS 7 kubernetes 集群并使用 weave net CNI 插件,这是我的 CoreDNS 配置

0 投票
0 回答
1144 浏览

kubernetes - 无法将新节点加入现有集群:[发现] 请求集群信息失败,将重试:[未授权]

我有一个现有的 kubernetes 1.11.3 集群,我无法将新节点加入其中。

我正在尝试通过 master 上的 kubeadm 创建一个带有 --print-join-command 标志的新令牌来加入

然后我在新的工作节点上以 sudo 的形式运行该连接命令 - 但得到以下输出:

我的理解是,此输出是由 api-server 上的 --anonymous-auth 标志设置为 false 引起的。但我的明确设置为true。

我找不到任何日志来为我提供有关 api-server 或控制器管理器对加入请求执行的操作的更多信息。也许我找错地方了?有没有人见过这个?

根据要求 - kubeadm -v9 join 的输出(屏蔽 ip)。