标签: kube-apiserver

kube-apiserver在哪里?

基本问题:当我尝试在主节点上使用kube-apiserver时,我发现命令未找到错误.我如何安装/配置kube-apiserver?任何链接到示例都会有帮助.

$ kube-apiserver --enable-admission-plugins DefaultStorageClass
-bash: kube-apiserver: command not found
Run Code Online (Sandbox Code Playgroud)

详细信息:我是Kubernetes和Docker的新手,并尝试使用volumeClaimTemplates创建StatefulSet.我的问题是没有创建自动PV,我在PVC日志中收到此消息:"persistentvolume-controller等待创建卷".我不确定是否需要定义DefaultStorageClass,因此需要kube-apiserver来定义它.

Name:          nfs
Namespace:     default
StorageClass:  example-nfs
Status:        Pending
Volume:
Labels:        <none>
Annotations:   volume.beta.kubernetes.io/storage-provisioner=example.com/nfs
Finalizers:    [kubernetes.io/pvc-protection]
Capacity:
Access Modes:
Events:
  Type    Reason                Age                  From                         Message
  ----    ------                ----                 ----                         -------
  Normal  ExternalProvisioning  3m (x2401 over 10h)  persistentvolume-controller  waiting for a volume to be created, either by external provisioner "example.com/nfs" or manually created by system administrator
Run Code Online (Sandbox Code Playgroud)

这是获得pvc结果:

$ kubectl get pvc
NAME      STATUS    VOLUME    CAPACITY   ACCESS MODES   STORAGECLASS   AGE
nfs       Pending …
Run Code Online (Sandbox Code Playgroud)

volume persistent-storage docker kubernetes kube-apiserver

13
推荐指数
2
解决办法
9664
查看次数

轻松检测 Kubernetes 上已弃用的资源

我们刚刚收到一封来自 GCP 的电子邮件,通知我们我们的集群目前正在使用已弃用的 Beta API,我们需要升级到最新的 API 版本。

我们有 3 个集群在多个命名空间中运行多个资源,因此必须遍历所有集群来检测哪些资源已过时会有点痛苦。

我们控制的服务、部署、horizo​​ntalpodautoscalers、poddisruptionbudgets 等,这些都已经更新了。

但我们有很多服务的清单文件是自动生成的,比如 Halyard 生成的 Spinnaker 服务,或者 Elastic Operator 生成的 ElasticSearch 等。

有什么方法可以按 API 版本过滤所有资源,或者有什么方法可以检测所有命名空间中已弃用的资源?

kubernetes google-kubernetes-engine kube-apiserver

12
推荐指数
1
解决办法
2万
查看次数

Kubernetes API 服务器 --bind-address 与 --advertise-address

根据参考资料,其中两个选项kube-apiserver--bind-address--advertise-address在我看来,它们相互冲突。

两者之间的实际差异是什么?

是进程将侦听--bind-address的地址吗?kube-apiserver

--advertise-address将通告的地址是否是kube-apiserver它将侦听的地址?如果有的话,怎么做广告呢?它是否通过网络进行某种广播?

kubernetes kube-apiserver

9
推荐指数
1
解决办法
1万
查看次数

kube-apiserver 如何重启?

我今天重新启动了我的系统。之后,我的主系统和 Web 浏览器未连接以查找 kubernetes GUI。

当我运行命令时systemctl status kube-apiserver.service,它给出如下所示的输出:

kube-apiserver.service
  Loaded: not-found (Reason: No such file or directory)
  Active: inactive (dead)
Run Code Online (Sandbox Code Playgroud)

怎样才能api-server重新启动?

kubernetes kube-apiserver

8
推荐指数
3
解决办法
2万
查看次数

按 apiVersion 列出 Kubernetes 资源

有没有一种简单的方法来列出与 API 版本相关的所有 kubernetes 对象?可以说,API 版本apps/v1beta1已被弃用,我想知道我的集群中是否有任何使用此版本的对象,如何找到这些对象?

kubernetes kube-apiserver

6
推荐指数
1
解决办法
1万
查看次数

如何正确设置 --kubelet-certificate-authority apiserver 参数?

我正在使用KubeSpray在 AWS 上配置一个两节点集群。默认情况下--kubelet-certificate-authority不使用该参数。不过,我想设置一下。

我不知道 的正确设置--kubelet-certificate-authority。当我将其设置为时,/etc/kubernetes/pki/ca.crt我会在日志中看到如下消息:

TLS handshake error from 10.245.207.223:59278: remote error: tls: unknown certificate authority
Run Code Online (Sandbox Code Playgroud)

为了创建一个隔离的测试环境,我通过 SSH 连接到我的控制器节点来运行此命令,该命令在4667. 我直接从 复制这些值/etc/kubernetes/manifests/kube-apiserver.yaml。您需要调整该值以匹配您自己的集群。我特意以交互模式运行容器,以便可以看到日志消息。

TLS handshake error from 10.245.207.223:59278: remote error: tls: unknown certificate authority
Run Code Online (Sandbox Code Playgroud)

现在可以再次通过 SSH 连接到控制器并用于curl与自定义 apiserver 容器进行交互。

  • 将 APISERVER 变量设置为指向控制器节点。我正在使用上面参数的值advertise-address
APISERVER=https://10.245.207.223:6447
Run Code Online (Sandbox Code Playgroud)
  • 获得一个令牌。
sudo docker run \
  --name api-server-playground \
  -it \
  --rm \
  --network host \
  --volume /etc/kubernetes:/etc/kubernetes:ro \
  --volume /etc/pki:/etc/pki:ro \
  --volume /etc/ssl:/etc/ssl/:ro …
Run Code Online (Sandbox Code Playgroud)

kubernetes kubernetes-apiserver kube-apiserver

6
推荐指数
1
解决办法
5707
查看次数

无需 kubectl 代理即可访问 Kubernetes 仪表板

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

http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/
Run Code Online (Sandbox Code Playgroud)

但是,如果我尝试直接访问节点,而没有kubectl proxy,则会收到 403 Forbidden。

http://dev-master:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/#!/login
Run Code Online (Sandbox Code Playgroud)

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

需要更改哪些内容以允许“匿名”HTTP 访问这些已受保护的 kubernetes 主节点的仪表板?

kubernetes kubectl kube-proxy kubernetes-dashboard kube-apiserver

5
推荐指数
1
解决办法
6493
查看次数

kube-apiserver - 无效的不记名令牌,令牌已失效

当我尝试启动 kube-apiserver 时,我收到以下日志:

I1215 14:18:23.130968       1 controller.go:83] Starting OpenAPI controller
I1215 14:18:23.131021       1 customresource_discovery_controller.go:208] Starting DiscoveryController
I1215 14:18:23.131047       1 naming_controller.go:288] Starting NamingConditionController
I1215 14:18:23.131067       1 establishing_controller.go:73] Starting EstablishingController
I1215 14:18:23.131084       1 nonstructuralschema_controller.go:191] Starting NonStructuralSchemaConditionController
I1215 14:18:23.149275       1 controller_utils.go:1036] Caches are synced for crd-autoregister controller
I1215 14:18:23.191491       1 client.go:354] parsed scheme: ""
I1215 14:18:23.191600       1 client.go:354] scheme "" not registered, fallback to default scheme
I1215 14:18:23.191681       1 asm_amd64.s:1337] ccResolverWrapper: sending new addresses to cc: [{127.0.0.1:2379 0  <nil>}]
I1215 14:18:23.206235       1 asm_amd64.s:1337] …
Run Code Online (Sandbox Code Playgroud)

kubeadm kubernetes-apiserver kube-apiserver

5
推荐指数
0
解决办法
1664
查看次数

如何在 kube api 中获取秘密的最后应用时间戳

我想获取最后一次通过 kube api 修改秘密的时间。我似乎无法找到访问此信息的方法。我查看了事件,但找不到任何有关秘密的信息。

一个例子是我创建一个名为 my-secret 的秘密,然后我在第二天更新它,但我想知道它的更新时间而不是创建时间。

任何帮助将非常感谢。

kubernetes kube-apiserver

5
推荐指数
1
解决办法
5312
查看次数

securityContext.privileged: Forbidden: 集群策略不允许

我无法启动需要特权安全上下文的 pod。Pod 安全策略:

apiVersion: policy/v1beta1
kind: PodSecurityPolicy
metadata:
  name: pod-security-policy
spec:
  privileged: true
  allowPrivilegeEscalation: true
  readOnlyRootFilesystem: false
  allowedCapabilities:
  - '*'
  allowedProcMountTypes:
  - '*'
  allowedUnsafeSysctls:
  - '*'
  volumes:
  - '*'
  hostPorts:
  - min: 0
    max: 65535
  hostIPC: true
  hostPID: true
  hostNetwork: true
  runAsUser:
    rule: 'RunAsAny'
  seLinux:
    rule: 'RunAsAny'
  supplementalGroups:
    rule: 'RunAsAny'
  fsGroup:
    rule: 'RunAsAny'
Run Code Online (Sandbox Code Playgroud)

集群角色:

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: privileged
rules:
- apiGroups:
  - '*'
  resourceNames:
  - pod-security-policy
  resources:
  - '*'
  verbs:  
  - '*'
Run Code Online (Sandbox Code Playgroud)

集群角色绑定:

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding …
Run Code Online (Sandbox Code Playgroud)

rbac security-context kubernetes kube-apiserver

3
推荐指数
1
解决办法
4704
查看次数