小编Joh*_*han的帖子

docker-compose 内部 DNS 服务器 127.0.0.11 连接被拒绝

突然,当我使用 docker-compose 部署一些新容器时,内部主机名解析不起作用。
当我尝试使用 docker-compose.yaml 文件中的服务名称从另一个容器 ping 一个容器时,ping: bad address 'myhostname' 我检查了它/etc/resolv.conf是否正确并且正在使用127.0.0.11 当我尝试手动解析我的主机名时,nslookup myhostname.或者nslookup myhostname.docker.internal出现错误

nslookup: write to '127.0.0.11': Connection refused
;; connection timed out; no servers could be reached
Run Code Online (Sandbox Code Playgroud)

好的,问题是 docker DNS 服务器已停止工作。所有已经启动的容器仍然可以运行,但任何新启动的容器都有这个问题。我在跑步Docker version 19.03.6-ce, build 369ce74

我当然可以重新启动 docker 以查看它是否解决了它,但我也很想了解为什么会发生这个问题以及如何在将来避免它。
我在服务器上启动了很多容器,目前共有 25 个 docker 网络。关于可以做什么来排除故障的任何想法?任何可以解释这一点的已知问题?docker-compose.yaml我使用的文件以前工作过,没有对其进行任何更改。

编辑:根本无法解析 DNS 名称。127.0.0.11 拒绝所有连接。我可以 ping 任何外部 IP 地址,以及同一 docker 网络上其他容器的 IP。只有 127.0.0.11 DNS 服务器不工作。127.0.0.11 仍然从容器内回复 ping。

docker docker-compose

13
推荐指数
3
解决办法
8844
查看次数

无法在 GCP 中使用 Terraform 创建基于经典路由的 VPN 隧道

我想要实现的目标:

我希望 Terraform 在 GCP 中创建基于经典路由的 VPN 隧道。

背景:

在 GCP 中设置 VPN 隧道时,有 3 个选项用于路由 BGP 基于路由 基于策略

在 GCP 中创建基于路由的 VPN 隧道时,您需要指定远程子网。如果您要创建基于策略的 VPN 隧道,您还需要指定本地子网。

由于我想创建基于路由的 VPN 隧道,因此我只需要提供远程子网。

问题:

但是在 Terraform 中,资源“google_compute_vpn_tunnel”没有与要使用的路由类型有关的选项。好吧,也许它是由缺少“local_traffic_selector”决定的,然后变成基于路由的 VPN 隧道。但即使我在 main.tf 中省略了“local_traffic_selector”选项,它仍然存在于计划中。

' + local_traffic_selector =(应用后已知)

由于我没有为其指定任何值,Terraform 尝试将其与空值一起使用,这是不可能的。

Error: Error creating VpnTunnel: googleapi: Error 400: Invalid value for field 'resource.localTrafficSelector[0]': ''. The local_traffic_selector field cannot be empty for network in custom subnet mode., invalid

  on main.tf line 51, in resource "google_compute_vpn_tunnel" "tunnel1":
  51: resource "google_compute_vpn_tunnel" …
Run Code Online (Sandbox Code Playgroud)

google-cloud-platform terraform google-cloud-networking

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

在AWS Athena中提取数组中的json

我已将日志从 kubernetes 发送到 S3 存储桶,并想使用 Athena 查询它

日志看起来像这样

[{      "date":1589895855.077230,
      "log":"192.168.85.35 - - [19/May/2020:13:44:15 +0000] \"GET /healthz HTTP/1.1\" 200 3284 \"-\" \"ELB-HealthChecker/2.0\" \"-\"",
      "stream":"stdout",
      "time":"2020-05-19T13:44:15.077230187Z",
      "kubernetes":{
         "pod_name":"myapp-deployment-cd984ffb-kjfbm",
         "namespace_name":"master",
         "pod_id":"eace0175-99cd-11ea-95e4-0aee746ae5d6",
         "labels":{
            "app":"myapp",
            "pod-template-hash":"cd984ffb"
          },
         "annotations":{
            "cluster-autoscaler.kubernetes.io/safe-to-evict":"false",
            "kubernetes.io/psp":"eks.privileged"
          },
         "host":"ip-1-1-1-1.eu-north-1.compute.internal",
         "container_name":"myapp",
         "docker_id":"cb2cda1ed46c5f09d15090fc3f654b1de35970001e366923287cfbd4a4abf4a1"
      }
},
{      "date":1589995860.077230,
      "log":"192.168.1.40 - - [20/May/2020:17:31:00 +0000] \"GET /healthz HTTP/1.1\" 200 3284 \"-\" \"ELB-HealthChecker/2.0\" \"-\"",
      "stream":"stdout",
      "time":"2020-05-20T17:31:00.077230187Z",
      "kubernetes":{
         "pod_name":"myapp-deployment-cd984ffb-kjfbm",
         "namespace_name":"master",
         "pod_id":"eace0175-99cd-11ea-95e4-0aee746ae5d6",
         "labels":{
            "app":"myapp",
            "pod-template-hash":"cd984ffb"
          },
         "annotations":{
            "cluster-autoscaler.kubernetes.io/safe-to-evict":"false",
            "kubernetes.io/psp":"eks.privileged"
          },
         "host":"ip-1-1-1-1.eu-north-1.compute.internal",
         "container_name":"myapp",
         "docker_id":"cb2cda1ed46c5f09d15090fc3f654b1de35970001e366923287cfbd4a4abf4a1"
      }
},]
Run Code Online (Sandbox Code Playgroud)

所以基本上是一个包含 json 对象的数组。

我正在 …

presto amazon-athena

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

kubernetes 中的 NetworkPolicy 与 podSelector 不匹配

我有一个简单的工作网络策略,如下所示

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: monitoring-network-policy-prometheus-jbn
  namespace: monitoring
spec:
  podSelector:
    matchLabels:
      app: prometheus
  policyTypes:
    - Egress
  egress:
    - to: 
      ports:
        - port: 61678
Run Code Online (Sandbox Code Playgroud)

但现在我想再限制一下。我不想允许从带有标签的所有 pod 到端口 61678 上的所有目的地的出口,app: prometheus而是只允许流向带有标签的 pod 的流量k8s-app: aws-node

所以我将政策更改为:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: monitoring-network-policy-prometheus-jbn
  namespace: monitoring
spec:
  podSelector:
    matchLabels:
      app: prometheus
  policyTypes:
    - Egress
  egress:
    - to:
      - podSelector:
          matchLabels:
            k8s-app: aws-node
Run Code Online (Sandbox Code Playgroud)

根据https://kubernetes.io/docs/concepts/services-networking/network-policies/的政策,看起来像这样

  ...
  ingress:
  - from:
    - namespaceSelector:
        matchLabels:
          user: alice
    - podSelector:
        matchLabels:
          role: client …
Run Code Online (Sandbox Code Playgroud)

kubernetes kubernetes-networkpolicy amazon-eks

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