我在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)
(这不起作用,这只是想法)
或者篡改编织脚本以使其在编织容器的开始处暴露端口.
有人知道更好的解决方案吗?
我使用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状态:
Run Code Online (Sandbox Code Playgroud)[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 …
我有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的所有事物都是陌生的,因此仍然有很多东西需要学习。
已经创建了两个节点的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) 我在我在本地机器上运行的小编织网络上设置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设置的其他信息,请告诉我们.
我想知道是否有人可以简要概述一下所有不同的Kubernetes网络覆盖之间的差异/优势.入门指南(http://kubernetes.io/docs/getting-started-guides/scratch/#network)提到以下内容:
但并没有真正解释它们之间的差异是什么,或者每个人的优缺点是什么.我想知道是否有人可以让我知道我应该使用哪种解决方案用于裸机CentOS 7集群.
谢谢!
我们维护运行生产应用程序的Ubuntu主机的“集群”。主机运行各种各样的Docker容器,例如
每个主机也运行
图片信息
elasticsearch-slave1
没有暴露的端口,但内部使用的端口显示为:9200
consul-master
Host1上的端口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 |
| …
我们的 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
在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)
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) weave ×10
kubernetes ×7
docker ×4
dns ×2
flannel ×2
kube-dns ×2
openvswitch ×2
calico ×1
cni ×1
docker-swarm ×1
kubectl ×1
linux ×1
networking ×1
vagrant ×1