标签: kubernetes

在 CoreOS 上增加熵

我正在 kubernetes 集群上试用 coreos。此设置包括一个服务 DNSSEC 响应的绑定服务器。由于 DNSSEC 密钥管理,绑定服务器用完所有可用的熵并在启动时挂起,并且需要数小时才能获得足够的熵来签署单个区域。

我可以做些什么来增加服务器上的熵以防止这种情况发生?

entropy-pool coreos kubernetes

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

使用 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 Cloud Container Builder 超时

Google Cloud Container Builder API文档表示您可以通过 API 设置超时。

我们的构建是由 webhooks 触发的,这意味着 API 对我们来说无关紧要。有没有办法在自动触发的构建上设置构建超时?

kubernetes google-cloud-platform

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

如何在 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
查看次数

Kubernetes cgroup 驱动程序配置错误

CentOS 中的默认 Docker 安装从 Cgroup 开始systemd。我从官方 YUM 仓库安装了 Kubernetes,systemddrop-in 10-kubeadm.conf有以下内容:

[Service]
Environment="KUBELET_KUBECONFIG_ARGS=--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf"
Environment="KUBELET_SYSTEM_PODS_ARGS=--pod-manifest-path=/etc/kubernetes/manifests --allow-privileged=true"
Environment="KUBELET_NETWORK_ARGS=--network-plugin=cni --cni-conf-dir=/etc/cni/net.d --cni-bin-dir=/opt/cni/bin"
Environment="KUBELET_DNS_ARGS=--cluster-dns=10.96.0.10 --cluster-domain=cluster.local"
Environment="KUBELET_AUTHZ_ARGS=--authorization-mode=Webhook --client-ca-file=/etc/kubernetes/pki/ca.crt"
Environment="KUBELET_CADVISOR_ARGS=--cadvisor-port=0"
Environment="KUBELET_CGROUP_ARGS=--cgroup-driver=systemd"
Environment="KUBELET_CERTIFICATE_ARGS=--rotate-certificates=true --cert-dir=/var/lib/kubelet/pki"
ExecStart=
ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_SYSTEM_PODS_ARGS $KUBELET_NETWORK_ARGS $KUBELET_DNS_ARGS $KUBELET_AUTHZ_ARGS $KUBELET_CADVISOR_ARGS $KUBELET_CGROUP_ARGS $KUBELET_CERTIFICATE_ARGS $KUBELET_EXTRA_ARGS
Run Code Online (Sandbox Code Playgroud)

我还尝试获取环境变量以查看 systemd 插件是否正确覆盖 ( systemctl show --property=Environment kubelet | cat):

Environment=KUBELET_KUBECONFIG_ARGS=--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf\x20--kubeconfig=/etc/kubernetes/kubelet.conf KUBELET_SYSTEM_PODS_ARGS=--pod-manifest-path=/etc/kubernetes/manifests\x20--allow-privileged=true KUBELET_NETWORK_ARGS=--network-plugin=cni\x20--cni-conf-dir=/etc/cni/net.d\x20--cni-bin-dir=/opt/cni/bin KUBELET_DNS_ARGS=--cluster-dns=10.96.0.10\x20--cluster-domain=cluster.local KUBELET_AUTHZ_ARGS=--authorization-mode=Webhook\x20--client-ca-file=/etc/kubernetes/pki/ca.crt KUBELET_CADVISOR_ARGS=--cadvisor-port=0 KUBELET_CGROUP_ARGS=--cgroup-driver=systemd KUBELET_CERTIFICATE_ARGS=--rotate-certificates=true\x20--cert-dir=/var/lib/kubelet/pki
Run Code Online (Sandbox Code Playgroud)

当我使用 初始化集群时kubeadm init --apiserver-advertise-address=X.X.X.X --pod-network-cidr=10.244.0.0/16,过程成功。但是,运行kubelet version会给我一个 Cgroup 配置错误错误:

error: failed to run Kubelet: failed to create …
Run Code Online (Sandbox Code Playgroud)

centos cgroup systemd docker kubernetes

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

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
查看次数

Netstat 和 ss 没有看到连接

我正在尝试查找 Kubernetes 集群上运行的哪个应用程序正在使用特定端口与 RabbitMQ 集群进行通信。在 RabbitMQ 上,我看到连接来自 192.168.1.10:34226。192.168.1.10是Kubernetes节点之一。登录到 192.168.1.10 后,我检查是否通过 tcpdump 命令从该节点建立了连接tcpdump -i eth0 port 34226。我看到两个方向的交通。现在我正在尝试查找哪个进程正在建立此连接。首先我尝试了 netstat:

netstat -tapn | grep 34226

结果什么也没发现。然后我尝试了 ss 但仍然一无所获。连接已建立,通过 tcpdump 我可以看到发送到 RabbitMQ 的心跳数据包以及来自 RabbitMQ 的响应。但 netstat 和 ss 不报告已建立的连接。

更新1

我发现这与网络命名空间有关。我的问题与this问题类似,但我需要找到从34226端口建立连接的进程的PID。

netstat tcpdump network-namespace kubernetes

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

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
查看次数

X-Forwarded-Host 在 nginx 中不起作用

更新 2.我想将所有流量添加并转发到localhost/admin/而不是localhost/.

  • 应用程序监听这些路径:
    • localhost/(然后通过应用获取302 localhost/login),
    • localhost/overview,
    • localhost/books/details, ETC。
  • 我希望管理员用户使用这些网址:
    • localhost/admin/localhost/admin/login(通过申请获得302 )
    • localhost/admin/overview
    • localhost/admin/books/details
  • 使用我的反向代理(见下文):
    • localhost/admin/(我localhost/login通过申请得到了302)

,

我也可以使用ingrees-nginx-controller而不是安装文件。

在 docker nginx.conf 中(或类似于 k8s)

server {
    listen 80 default_server;
    listen [::]:80 default_server;
        ...
        location /admin {
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-Host $host/admin;
        proxy_pass http://<conteiner2>.docker-network;
    }
    ... 
}
Run Code Online (Sandbox Code Playgroud)

Update1 对于 kubernetes,我正在尝试设置为此,ingress-nginx 我安装了并使用此 YAMLingress-nginx-controller设置:ingress-nginx

apiVersion: …
Run Code Online (Sandbox Code Playgroud)

nginx docker kubernetes

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

Kubernetes集群共享存储和备份解决方案

Kubernetes集群实现容器的共享存储持久化有哪些常见的共享存储方案?NAS / iSCSI 上的 NFS 不知何故?您如何使用这种类型的存储备份 Kubernetes 上的数据?

backup network-attached-storage storage-area-network architecture kubernetes

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