问题标签 [kubernetes-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 投票
3 回答
10915 浏览

kubernetes - Kubernetes master 返回 401 Unauthorized 错误

我在笔记本电脑上安装了 minikube、kubectl。

当我跑kubectl cluster-info进去时得到以下

当我连接到 https://10.168.99.10:8443时,我得到以下响应。

安装 kubectl/minikube 时没有提示输入用户/密码。连接的默认用户/密码是什么。

0 投票
2 回答
9120 浏览

docker - kubernetes:api-server 和 controller-manager 无法启动

我有一个正在运行的 k8s 集群,使用 kubeadm 进行设置。我有一个问题,由于绑定异常,api-serverand pod 无法启动:controller-manager

由于 docker 在重新创建容器时存在错误,我们最近docker-ce从版本降级18.01到所有节点上。17.09但是在降级集群后运行良好,这意味着 api-server 和 controller-manager 正在运行。

我搜索了 google 等,以查找与 api-server 和 controller-manager 的 bindexceptions 相关的问题,但找不到任何有用的东西

我检查了,没有其他进程在主节点上的该端口上运行。我尝试过的事情:

  • 在 master 上重新启动 kubelet:systemctl restart kubelet
  • 重新启动 docker 守护进程,查看过时的容器:没有找到任何人
  • 检查是否有任何进程在 6443 上运行:lsof -i:6443不打印任何内容,但nmap localhost -p 6443显示端口已打开service unknown
  • 也重新启动了系统 pod

重新启动 kubelet 和 docker daemon 工作正常,但对问题没有任何影响

Kubeadm / kubectl - 版本:

用作netcork weave-cni

编辑:

主节点的docker ps

journalctl - 完整:


kubeadm.conf


码头工人信息-cgroup


核心:


发行:

0 投票
1 回答
3185 浏览

kubernetes - kube-apiserver 在多主集群中未正确验证

我正在尝试使用kubeadm此处记录的方法在 Azure 中创建 HA Kubernetes 集群https://kubernetes.io/docs/setup/independent/high-availability/

我只使用 1 个主节点时一切正常,但是当更改为 3 个主节点时,kube-dns 不断因 apiserver 问题而崩溃

运行时可以看到kubectl get nodes3 个主节点已准备就绪

但是 dns 和仪表板 pod 不断崩溃

日志kubectl -n kube-system logs kube-dns-6f4fd4bdf-rmqbf -c kubedns表明存在 api 服务器问题

的输出kubectl -n kube-system logs kube-apiserver-k8s-master-0看起来相对正常,除了所有 TLS 错误

然而,第二个 api 服务器的输出看起来更糟糕

0 投票
1 回答
56 浏览

kubernetes - Kubernetes - 每个连接的负载平衡 Web 应用程序访问

好久没来了,希望你没事:)

所以现在,我很高兴与 kubernetes 一起工作!所以让我们开始吧!:)

[现有]

我有一个运行中的 kubernetes 集群,我每天都在使用它。它由几个应用程序组成,其中一个是我们特别感兴趣的,它是 Web 管理界面。

我目前在集群中拥有一个主节点和四个节点。

对于我的 web 应用程序,pod 包含 3 个容器:web / mongo /filebeat,出于技术原因,我们决定为每个 web pod 分配最多 5 个用户。

[我想要的是]

我想在每个节点(web0、web1、web2、web3)上部署一个 web pod,我已经可以做的,并且每个会话(1 个会话 = 1 个用户)分布如下:

用户重新分区

目前,所有 HTTP 请求都由 web0 处理。

[问题]

我是否被迫通过外部负载均衡器(haproxy)?

我可以使用内部负载均衡器来配置服务吗?

有没有人有上述实施的经验?

我提前感谢那些在这个过程中可以帮助我的人:)

0 投票
7 回答
85631 浏览

kubernetes - Kubernetes:过期证书

我们的 Kubernetes 1.6 集群在 2017 年 4 月 13 日构建集群时生成了证书。

2017 年 12 月 13 日,我们的集群升级到 1.8 版本,并生成了新的证书[显然是一组不完整的证书]。

2018 年 4 月 13 日,我们开始在 Kubernetes 的 api-server 仪表板中看到这条消息:

[authentication.go:64] Unable to authenticate the request due to an error: [x509: certificate has expired or is not yet valid, x509: certificate has expired or is not yet valid]

尝试将客户端证书客户端密钥/etc/kubernetes/kubelet.conf指向12 月 13 日 [apiserver-kubelet-client.crt和] 生成的证书apiserver-kubelet-client.crt,但继续看到上述错误。

尝试将客户端证书客户端密钥/etc/kubernetes/kubelet.conf指向12 月 13 日 [和] 生成的不同证书(老实说,我不明白这两组证书/密钥之间的区别),但继续看到上述错误。apiserver.crtapiserver.crt

尝试将客户端证书客户端密钥指向不存在/etc/kubernetes/kubelet.conf的文件,并且没有任何 kube* 服务会启动,并/var/log/syslog抱怨:

Apr 17 17:50:08 kuber01 kubelet[2422]: W0417 17:50:08.181326 2422 server.go:381] invalid kubeconfig: invalid configuration: [unable to read client-cert /tmp/this/cert/does/not/exist.crt for system:node:node01 due to open /tmp/this/cert/does/not/exist.crt: no such file or directory, unable to read client-key /tmp/this/key/does/not/exist.key for system:node:node01 due to open /tmp/this/key/does/not/exist.key: no such file or directory]

关于如何克服此错误,甚至在更细粒度级别上对其进行故障排除的任何建议?正在考虑根据https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm-alpha/#cmd-phase-certskubeadm alpha phase certs apiserver中的说明为 api-server ( )重新生成证书...但不确定是否我会造成更大的伤害。

对 Kubernetes 来说相对较新,并且设置它的绅士无法咨询......感谢任何帮助。谢谢。

0 投票
1 回答
700 浏览

kubernetes - 按 pod 名称过滤 Kubernetes API

我有一个在 minikube 中运行的 Kubernetes 集群,我想通过 Kubernetes API 过滤掉所有 Logstash pod。Kubernetes API文档有点混乱,我做了一些研究,发现我可以使用这样的东西,但到目前为止我一直没有成功:

任何想法如何检索这个?任何帮助将非常感激。

0 投票
1 回答
732 浏览

kubernetes - Pod 预设不适用于 minikube

我正在尝试在 minikube 上测试 pod 预设。我运行以下命令来启动 minikube:

minikube start --vm-driver hyperv --hyperv-virtual-switch开关名称--extra-config=apiserver.admission-control="NamespaceLifecycle,LimitRanger,ServiceAccount,PersistentVolumeLabel,DefaultStorageClass,DefaultTolerationSeconds,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota,PodPreset"

集群启动后,我运行kubectl get podpreset,这让我返回the server doesn't have a resource type 'podpreset'。我的印象是我只需将 PodPreset 添加到准入控制中,然后 pod 预设就可以工作了。有没有人有什么建议?

一些附加信息:

0 投票
2 回答
6533 浏览

kubernetes - 如何从 REST API 创建 Pod

如何使用 REST API 创建 Pod?

我检查了 Kubernetes API 文档:
https ://kubernetes.io/docs/reference/generated/kubernetes-api/v1.10/#-strong-write-operations-strong--54

他们正在编写需要使用 POST 请求的内容:
POST /api/v1/namespaces/{namespace}/pods

我有这个简单的 nginx pod 的 YAML:

0 投票
0 回答
494 浏览

go - 如何在 k8s.io/code-generator 中使用切片和映射

我正在编写一个监听环境自定义资源的 Kubernetes 控制器。

pkg/apis/environment/v1alpha1/types.go有以下内容:

运行 k8s.io/code-generator/generate-groups.sh 脚本后,我得到了一个错误的pkg/apis/environment/v1alpha1/zz_generated.deepcopy.go文件。问题来自这个生成的方法:

尝试构建或运行此代码会给我以下错误

只要我在Parameters结构中包含的匿名结构中包含MapSlice ,就会遇到此错误。

解决方法

解决方法是创建一个包含映射的命名类型。例如,我像这样重构了Service结构:

生成的func (in *Service) DeepCopyInto(out *Service)并没有改变,但创建了以下 2 个新方法:

现在,我在构建和运行代码时没有任何问题。

这种解决方法很痛苦,因为我真正的Service结构比这个例子大得多。

有没有办法通过代码生成器在匿名 func 中使用地图和切片?

0 投票
1 回答
1117 浏览

kubernetes - 每个节点的 CPU/内存请求和限制

kubectl describe nodes提供有关 CPU 和内存等资源的请求和限制的信息。但是,api 端点api/v1/nodes不提供此信息。

或者,我也可以点击api/v1/pods端点以获取每个 pod 的信息,这些信息可以跨节点累积。但是是否已经有一个 kubernetes API 端点提供与 CPU/内存请求和每个节点的限制有关的信息?