标签: google-kubernetes-engine

外部:用户无权访问服务帐户“默认”

尝试创建新容器时,出现错误“外部:用户无权访问服务帐户“默认”“。这最近开始发生。任何用户(包括管理员帐户)都会发生这种情况。有任何想法吗?

google-compute-engine google-cloud-platform google-kubernetes-engine

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

使用 Ingress 的 Google Container Engine 上的 HTTP 负载均衡器

我尝试按照以下教程进行操作:https : //cloud.google.com/container-engine/docs/tutorials/http-balancer

一切似乎都在进行,直到最后做

kubectl describe ingress basic-ingress

返回

 Name:          basic-ingress
Namespace:      default
Address:        {hidden_external_ip}
Default backend:    nginx:80 ({hidden_internal_ip}:80)
Rules:
  Host  Path    Backends
  ----  ----    --------
  * *   nginx:80 ({hidden_internal_ip}:80)
Annotations:
  backends:     {"k8s-be-00000--0000000000000000":"Unknown"}
  forwarding-rule:  k8s-fw-default-basic-ingress--0000000000000000
  target-proxy:     k8s-tp-default-basic-ingress--0000000000000000
  url-map:      k8s-um-default-basic-ingress--0000000000000000
Events:
  FirstSeen LastSeen    Count   From                SubobjectPath   Type        Reason  Message
  --------- --------    -----   ----                -------------   --    ------    ------  -------
  1m        1m      1   {loadbalancer-controller }          Normal          ADD default/basic-ingress
  23s       23s     1   {loadbalancer-controller }          Normal          CREATE  ip: {hidden_external_ip}
Run Code Online (Sandbox Code Playgroud)

请注意,后端行以“unknown”结尾

此外,卷曲外部 IP 会返回以下内容:

<html><head> …
Run Code Online (Sandbox Code Playgroud)

load-balancing kubernetes google-kubernetes-engine

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

如何在 Google Container Engine 附带的默认 Google Load Balancer 上启用 HSTS?

我很想用我的 GKE 集群设置 HSTS,因为现在 HTTP 请求在设置后返回一个谷歌损坏的机器人 404 页面ingress.yml annotationskubernetes.io/ingress.allow-http: "false"

显然在ingress.yml(即hsts-max-agehsts-include-subdomains)中有这个选项,但据我所知 GKE 不支持它:https : //github.com/kubernetes/ingress/blob/7c749ede0a2d88f289279d61d04005e22f002104/docs/annotations-related.md

我真的很想避免使用和维护自定义 Nginx 负载均衡器并避免失去 Google 的扩展能力,坚持使用默认的负载均衡器将是一个强烈的要求。我还想避免让 HTTP 请求通过并处理我的应用程序中的重定向和 HSTS 标头。

如果 HSTS 不可能,我可以接受一个很好的重定向设置。

非常感谢!

https load-balancing kubernetes google-kubernetes-engine hsts

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

GKE ElasticSearch StatefulSet 上的 vm.max_map_count 问题

GKE 上运行的 ElasticSearch 集群出现问题。具有“数据”角色的节点开始意外崩溃并出现错误:

max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

bootstrap checks failed
Run Code Online (Sandbox Code Playgroud)

当然,这个 StatefulSet 控制器中有一个 init 容器,它将 vm.max_map_count 设置为 262144

更重要的是,这个初始化容器似乎成功完成:

kubectl descrive pod elastic-data-0


Init Containers:
  init-sysctl:
    Container ID:  docker://23d3b3d11198510aa01aef340b92e1603785804fbf75e963fdbd61acfe458318
    Image:         busybox:latest
    Image ID:      docker-pullable://busybox@sha256:5e8e0509e829bb8f990249135a36e81a3ecbe94294e7a185cc14616e5fad96bd
    Port:          <none>
    Command:
      sysctl
      -w
      vm.max_map_count=262144
    State:          Terminated
      Reason:       Completed

apiVersion: apps/v1beta1
kind: StatefulSet
metadata:
  name: elastic-data
  labels:
    component: elasticsearch
    role: data
spec:
  serviceName: elasticsearch-data
  updateStrategy:
    type: RollingUpdate
  replicas: 3
  template:
    metadata:
      labels:
        component: elasticsearch …
Run Code Online (Sandbox Code Playgroud)

elasticsearch kubernetes google-kubernetes-engine gcloud

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

Google Cloud Kuberbetes 失控 systemd 100% CPU 使用率

上周,在将我们的 GKE 集群升级到 Kubernetes 1.13.6-gke.13 后,由于 CPU 使用率过高,我们集群中的所有节点都开始出现故障。是节点本身上的 Kubernetes 软件耗尽了所有 CPU,而不是 Pod。

这是top我们通过 SSH 连接到节点时显示的内容:

top - 10:11:27 up 5 days, 22 min,  1 user,  load average: 23.71, 21.90, 20.32
Tasks: 858 total,   3 running, 854 sleeping,   0 stopped,   1 zombie
%Cpu(s): 33.5 us, 30.9 sy,  0.0 ni, 35.5 id,  0.0 wa,  0.0 hi,  0.1 si,  0.0 st
MiB Mem :  30157.0 total,  14125.6 free,   4771.2 used,  11260.1 buff/cache
MiB Swap:      0.0 total,      0.0 free,      0.0 used.  24762.7 …
Run Code Online (Sandbox Code Playgroud)

kubernetes google-cloud-platform google-kubernetes-engine

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

通过 SSH 访问 GKE Kubernetes 集群?

我有一个想要调试的 GKE Kubernetes 集群。

是否可以使用ubuntu图像和 SSH 等方式以完全权限启动集群内的容器,以便我能够在其中安装软件并apt运行各种调试命令?

kubernetes google-kubernetes-engine

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

无法在私有 GKE 集群中的 pod 上访问互联网

我目前无法从我的私有 Kubernetes 集群访问/ping/连接到 Google 之外的任何服务。Pod 正在运行 Alpine linux。

路由表

/sleepez/api # ip route show table all
default via 10.52.1.1 dev eth0
10.52.1.0/24 dev eth0 scope link  src 10.52.1.4
broadcast 10.52.1.0 dev eth0 table local scope link  src 10.52.1.4
local 10.52.1.4 dev eth0 table local scope host  src 10.52.1.4
broadcast 10.52.1.255 dev eth0 table local scope link  src 10.52.1.4
broadcast 127.0.0.0 dev lo table local scope link  src 127.0.0.1
local 127.0.0.0/8 dev lo table local scope host  src 127.0.0.1
local 127.0.0.1 …
Run Code Online (Sandbox Code Playgroud)

linux-networking kubernetes google-cloud-platform google-kubernetes-engine

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

在 Google 负载均衡器中使用“让我们加密”TLS?(Kubernetes/GKE)

我一直在尝试在 Google Cloud 上测试 Kubernetes,但需要在部署的应用程序上公开 HTTPS/TLS(仅)。首先,我只是按照本教程进行操作,该教程适用于端口 80 上的普通 HTTP:https : //cloud.google.com/kubernetes-engine/docs/quickstart

为了使用Let's Encrypt获得 TLS 支持,我尝试过(但没有成功):

... 有没有人对如何为原始教程只提供 HTTPS 有任何建议?除非它是免费赠品,否则不需要普通的 HTTP,但我真的在这个问题上摸不着头脑,因为我之前没有使用过 Kubernetes,而且我根本无法让 Let's Encrypt 在这里工作。

ssl google-cloud-platform google-kubernetes-engine lets-encrypt go

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

k8s 中 Postgres 挂载卷错误

我正在尝试在PersistentVolumeClaimGKE 中部署 Postgres。根据此处的描述(请参阅 参考资料PGDATA),建议在安装外部卷时创建一个子目录。所以,这就是我对 PG 部署所做的事情:

spec:
  containers:
    - name: postgres-dev
      image: "postgres:12.1"
      imagePullPolicy: IfNotPresent
      ports:
        - containerPort: 5432
      env:
        - name: PGDATA
          value: "/var/lib/postgresql/data/pgdata"
      volumeMounts:
        - name: postgres-persistent-storage-dev
          mountPath: "/var/lib/postgresql/data/pgdata"
  volumes:
    - name: postgres-persistent-storage-dev
      persistentVolumeClaim:
        claimName: postgres-pvc-dev
Run Code Online (Sandbox Code Playgroud)

/pgdata我在 中创建子目录/postgresql/data,这将是 Postgres 数据的原始挂载点。

但是当我尝试部署 Postgres pod 时,它因退避错误而停止,并且收到以下事件:

Events:
  Type     Reason                  Age               From                                                  Message
  ----     ------                  ----              ----                                                  -------
  Normal   Scheduled               20s               default-scheduler                                     Successfully assigned default/postgres-dev-7f549754d-nm2lf to gke-cluster-pool-1-4ce1e4d6-m33c
  Normal   SuccessfulAttachVolume  15s               attachdetach-controller                               AttachVolume.Attach …
Run Code Online (Sandbox Code Playgroud)

postgresql kubernetes google-kubernetes-engine

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

GCE:健康检查和活性探测

在为网络负载平衡创建目标池时,有一个health check选项。

在此处输入图片说明

还有一个livenessProbe容器规范中命名的属性。

活性探针检查配置它的容器是否仍在运行。如果活性探测失败,kubelet 会杀死容器,容器将受到其重启策略的约束。通过配置 pod 配置的 template.spec.containers.livenessprobe 节来设置活性检查。

容器配置的时候健康检查就不需要了livenessProbe吗?

据我了解,如果容器关闭,POD 将自动重启。在这种情况下,不需要进行健康检查。

节点挂了怎么办?据我了解,kubernetes 会在另一个 NODE 中启动 POD,这意味着 POD 将再次重启。

在我看来,无论如何,配置 livenessProbe 时就不需要进行健康检查。

google-compute-engine kubernetes google-cloud-platform google-kubernetes-engine

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

Kubernetes:交互式 Rails 控制台

我有一个同时运行 awebworkerDeployment的 Rails 服务器。一个启动 Puma,另一个启动 Sidekiq。如何rails console使用在 Kubernetes 集群上运行的应用程序映像连接到交互式?

kubernetes google-cloud-platform google-kubernetes-engine

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

升级节点时,为什么 kubernetes 在新的 pod 处于就绪状态之前终止 pod?

如下图所示,当将节点升级到新版本的 Kubernetes 时,每个节点上的 pod 都会在新节点上使用更新版本的 Kubernetes 重新创建。

但是,似乎没有等待新 Pod 处于 Ready 状态,旧 Pod 就被销毁(终止),导致停机,因为新 Pod 仍处于 ContainerCreating 状态。

对此有解释吗,还是我做错了什么?

在此处输入图片说明

kubernetes google-kubernetes-engine

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