标签: weave

如何从外部访问Weave DNS-Server?

我在Docker-Swarm上使用Weave网络插件.

我创建了一个具有特定IP范围的docker网络,与我从内部网络路由的默认Weave网络不同.

为了使容器更易于访问,我使用weave附加DNS名称,如containername.auto.mycompany.de.现在我想访问我公司的网络.问题是,编织只允许从本地主机访问编织DNS.

就像在我的一个swarm节点上一样,我可以这样做:

host foobar.auto.mycompany.de 172.17.0.1
Using domain server:
Name: 172.17.0.1
Address: 172.17.0.1#53
Aliases: 

foobar.auto.mycompany.de has address 10.40.13.3
Host foobar.auto.mycompany.de not found: 3(NXDOMAIN)
Host foobar.auto.mycompany.de not found: 3(NXDOMAIN)
Run Code Online (Sandbox Code Playgroud)

但我找不到一种方法可以在这个(10.40.130/24)泊坞网络中的一个IP上访问编织容器,或者将端口暴露给群集节点.

我能想到但却不喜欢的唯一方法就是这样做:

iptables -t nat -A  DOCKER -p tcp --dport 53 -j DNAT --to-destination 172.17.0.1:53
Run Code Online (Sandbox Code Playgroud)

(这不起作用,这只是想法)

或者篡改编织脚本以使其在编织容器的开始处暴露端口.

有人知道更好的解决方案吗?

linux dns docker docker-swarm weave

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

如何使用kubeadm和Weave在kagrant集群中运行kube-dns

我使用Vagrant部署了一些虚拟机来测试kubernetes:
master:4个CPU,4GB RAM
节点-1:4个CPU,8GB RAM
基本映像:Centos/7.
网络:桥接.
主机操作系统:Centos 7.2

按照kubeadm入门指南使用kubeadm部署kubernem .将节点添加到集群并安装Weave Net之后,遗憾的是我无法启动并运行kube-dns,因为它处于ContainerCreating状态:

[vagrant@master ~]$ kubectl get pods --all-namespaces
NAMESPACE     NAME                             READY     STATUS              RESTARTS   AGE
kube-system   etcd-master                      1/1       Running             0          1h
kube-system   kube-apiserver-master            1/1       Running             0          1h
kube-system   kube-controller-manager-master   1/1       Running             0          1h
kube-system   kube-discovery-982812725-0tiiy   1/1       Running             0          1h
kube-system   kube-dns-2247936740-46rcz        0/3       ContainerCreating   0          1h
kube-system   kube-proxy-amd64-4d8s7           1/1       Running             0          1h
kube-system   kube-proxy-amd64-sqea1           1/1       Running             0          1h
kube-system   kube-scheduler-master            1/1       Running             0          1h
kube-system   weave-net-h1om2                  2/2       Running             0          1h …
Run Code Online (Sandbox Code Playgroud)

vagrant kubernetes weave kube-dns

10
推荐指数
2
解决办法
3410
查看次数

如何修复第二个节点的weave-net CrashLoopBackOff?

我有2个VM节点.两者都通过主机名(通过/ etc/hosts)或ip地址相互看到.其中一个已经配备了kubeadm作为主人.另一个作为工作节点.按照说明(http://kubernetes.io/docs/getting-started-guides/kubeadm/),我添加了weave-net.pod的列表如下所示:

vagrant@vm-master:~$ kubectl get pods --all-namespaces
NAMESPACE     NAME                                    READY     STATUS             RESTARTS   AGE
kube-system   etcd-vm-master                          1/1       Running            0          3m
kube-system   kube-apiserver-vm-master                1/1       Running            0          5m
kube-system   kube-controller-manager-vm-master       1/1       Running            0          4m
kube-system   kube-discovery-982812725-x2j8y          1/1       Running            0          4m
kube-system   kube-dns-2247936740-5pu0l               3/3       Running            0          4m
kube-system   kube-proxy-amd64-ail86                  1/1       Running            0          4m
kube-system   kube-proxy-amd64-oxxnc                  1/1       Running            0          2m
kube-system   kube-scheduler-vm-master                1/1       Running            0          4m
kube-system   kubernetes-dashboard-1655269645-0swts   1/1       Running            0          4m
kube-system   weave-net-7euqt                         2/2       Running            0          4m
kube-system   weave-net-baao6                         1/2       CrashLoopBackOff   2 …
Run Code Online (Sandbox Code Playgroud)

kubernetes weave

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

apiserver可以通过CNI提供的网络连接到节点的Kubelet端口吗?

Weave Net 的套筒模式允许将NAT之后的节点添加到网格中,例如,公司网络中没有外部IP的机器。

当Weave Net与Kubernetes一起使用时,可以将此类节点添加到集群中。唯一的缺点(与fastdp相比,除了性能之外)似乎是Kubernetes API服务器无法访问Kubelet端口,因此附加到Pod或获取日志均无效。

是否可以以某种方式解决此问题,例如通过编织网络连接到NATed节点的Kubelet端口?

kubernetes weave cni

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

Kubernetes-Pod仍处于ContainerCreating状态

我对Kubernetes的所有事物都是陌生的,因此仍然有很多东西需要学习。

已经创建了两个节点的Kubernetes集群,并且两个节点(主节点和工作节点)都准备好进行工作,这很好:

[monkey@k8s-dp1 nginx-test]# kubectl get nodes
NAME      STATUS    ROLES     AGE       VERSION
k8s-dp1   Ready     master    2h        v1.9.1
k8s-dp2   Ready     <none>    2h        v1.9.1
Run Code Online (Sandbox Code Playgroud)

此外,所有Kubernetes Pod看起来都不错:

[monkey@k8s-dp1 nginx-test]# kubectl get pods --all-namespaces
NAMESPACE     NAME                              READY     STATUS    RESTARTS   AGE
kube-system   etcd-k8s-dp1                      1/1       Running   0          2h
kube-system   kube-apiserver-k8s-dp1            1/1       Running   0          2h
kube-system   kube-controller-manager-k8s-dp1   1/1       Running   0          2h
kube-system   kube-dns-86cc76f8d-9jh2w          3/3       Running   0          2h
kube-system   kube-proxy-65mtx                  1/1       Running   1          2h
kube-system   kube-proxy-wkkdm                  1/1       Running   0          2h
kube-system   kube-scheduler-k8s-dp1            1/1       Running   0          2h
kube-system   weave-net-6sbbn …
Run Code Online (Sandbox Code Playgroud)

kubernetes weave kubectl

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

Docker Weave和WeaveDNS问题

我在我在本地机器上运行的小编织网络上设置weaveDNS时遇到问题.

现在问题表现在这样一个事实:当我运行'weave status'时,我没有在输出中看到DNS部分(如http://docs.weave.works/weave/latest_release的疑难解答部分所示)/weavedns.html).

我正在运行4个容器.weave ps输出是:

c1d106ed5717 c2:ce:53:49:98:f6 10.0.1.12/24  
8f01765b2ba6 ba:2e:c3:4b:8f:8f 10.0.1.30/24  
0d824d914383 ae:95:28:db:95:18 10.0.1.11/24  
6cf985b91e9a 12:82:31:c2:b4:49 10.0.1.10/24  
b43f86e9fb51 d6:2e:d4:6a:09:dc **10.0.1.200/24**  
2847dd89e90d be:8b:d5:74:07:94
Run Code Online (Sandbox Code Playgroud)

突出显示的容器(10.0.1.200)是weaveDNS容器.最终容器(2847dd89e90d)是Weave路由器容器.

我正在启动容器:

sudo weave run --with-dns 10.0.1.30/24 -h service.weave.local --name service service_img_name 
Run Code Online (Sandbox Code Playgroud)

有谁知道为什么weave status没有显示DNS部分?
如果您需要我提供有关Weave设置的其他信息,请告诉我们.

dns docker weave

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

Kubernetes覆盖网络比较

我想知道是否有人可以简要概述一下所有不同的Kubernetes网络覆盖之间的差异/优势.入门指南(http://kubernetes.io/docs/getting-started-guides/scratch/#network)提到以下内容:

  • 绒布
  • 印花布
  • 编织
  • 罗马
  • 打开vSwitch(OVS)

但并没有真正解释它们之间的差异是什么,或者每个人的优缺点是什么.我想知道是否有人可以让我知道我应该使用哪种解决方案用于裸机CentOS 7集群.

谢谢!

calico openvswitch kubernetes weave flannel

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

如何改善或调试Docker覆盖网络的弹性?

背景

我们维护运行生产应用程序的Ubuntu主机的“集群”。主机运行各种各样的Docker容器,例如

  • 容器监控和普罗米修斯服务发现领事
  • 具有多个logstash和kibana的Elasticsearch集群
  • 普罗米修斯
  • 格拉那
  • 内部开发的应用程序(下图中的服务A到K)

每个主机也运行

  • 文件拍
  • Nginx的
  • 保持活力
  • Docker Overlay Network的领事

设置如下: 码头工人覆盖网络

图片信息

  • 主机领事公开2xxx而不是标准8xxx中的端口
  • 并非所有Docker容器都暴露于外界,例如elasticsearch-slave1没有暴露的端口,但内部使用的端口显示为:9200
  • docker consul使用覆盖网络进行所有通信,并且只有consul-masterHost1上的端口8500对外暴露了端口。

组态

其中一些信息可能与该问题完全无关。

主持人:Ubuntu 16.04.3 LTS

主机服务 | Application | Version | | ----------- | ---------- | | docker | 18.03.1-ce | | consul | v1.0.2 | Docker服务 | Application | Version | | ------------- | ------- | | consul | v1.0.2 | | elasticsearch | 5.6.4 | | logstash | 5.6.4 | | …

networking docker openvswitch weave

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

尽管 externalTrafficPolicy 设置为 Local,Kubernetes 仍提供内部源 IP

我们的 Kubernetes 集群包含一个 nginx 负载均衡器,用于将请求转发到其他 Pod。

但是,nginx 看到本地源 IP,因此无法设置正确的 X-Real-IP 标头。我尝试将 nginx 的 externalTrafficPolicy 值设置为“Local”,但 IP 没有改变。

nginx 服务配置部分:

 "selector": {
  "app": "nginx-ingress",
  "component": "controller",
  "release": "loping-lambkin"
},
"clusterIP": "10.106.1.182",
"type": "LoadBalancer",
"sessionAffinity": "None",
"externalTrafficPolicy": "Local",
"healthCheckNodePort": 32718
Run Code Online (Sandbox Code Playgroud)

结果:

GET / HTTP/1.1
Host: example.com:444
X-Request-ID: dd3310a96bf154d2ac38c8877dec312c
X-Real-IP: 10.39.0.0
X-Forwarded-For: 10.39.0.0
Run Code Online (Sandbox Code Playgroud)

我们使用带有 Metallb 的裸机集群。

load-balancing kubernetes weave kubernetes-ingress nginx-ingress

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

kubernetes安装和kube-dns:打开/run/flannel/subnet.env:没有这样的文件或目录

总览

kubeadm初始化和网络设置后,kube-dns无法启动(SetupNetworkError):

Error syncing pod, skipping: failed to "SetupNetwork" for 
"kube-dns-654381707-w4mpg_kube-system" with SetupNetworkError: 
"Failed to setup network for pod 
\"kube-dns-654381707-w4mpg_kube-system(8ffe3172-a739-11e6-871f-000c2912631c)\" 
using network plugins \"cni\": open /run/flannel/subnet.env: 
no such file or directory; Skipping pod"
Run Code Online (Sandbox Code Playgroud)

Kubernetes版本

Client Version: version.Info{Major:"1", Minor:"4", GitVersion:"v1.4.4", GitCommit:"3b417cc4ccd1b8f38ff9ec96bb50a81ca0ea9d56", GitTreeState:"clean", BuildDate:"2016-10-21T02:48:38Z", GoVersion:"go1.6.3", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"4", GitVersion:"v1.4.4", GitCommit:"3b417cc4ccd1b8f38ff9ec96bb50a81ca0ea9d56", GitTreeState:"clean", BuildDate:"2016-10-21T02:42:39Z", GoVersion:"go1.6.3", Compiler:"gc", Platform:"linux/amd64"}
Run Code Online (Sandbox Code Playgroud)

环境

Mac版VMWare Fusion

操作系统

NAME="Ubuntu"
VERSION="16.04.1 LTS (Xenial Xerus)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 16.04.1 LTS"
VERSION_ID="16.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
VERSION_CODENAME=xenial
UBUNTU_CODENAME=xenial …
Run Code Online (Sandbox Code Playgroud)

docker kubernetes weave flannel kube-dns

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