标签: kube-proxy

iptables模式下的kube-proxy无法正常工作

我有

  • Kubernetes:v.1.1.1
  • iptables v1.4.21
  • 内核:4.2.0-18-与Ubuntu wily一起提供的泛型
  • 通过在交换机上终止的L2 VLAN完成联网
  • 没有云提供商

我所做的

我正在尝试使用kube-proxy的iptables模式.我用--proxy_mode=iptables争论启用了它.似乎缺少一些规则:

iptables -t nat -nvL

Chain PREROUTING (policy ACCEPT 8 packets, 459 bytes)
 pkts bytes target     prot opt in     out     source               destination         
 2116  120K KUBE-SERVICES  all  --  *      *       0.0.0.0/0            0.0.0.0/0            /* kubernetes service portals */

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 2 packets, 120 bytes)
 pkts bytes target     prot opt in     out …
Run Code Online (Sandbox Code Playgroud)

kubernetes kube-proxy

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

在GKE/Kubernetes中配置kube-proxy的代理模式的新方法?

我看到最近的一个pull请求被合并以删除net.experimental.kubernetes.io/proxy-modenet.beta.kubernetes.io/proxy-mode注释.

当proxymode设置为时userspace,我的应用程序的反向代理服务器当前工作得更好,我想在升级后继续使用此设置.

由于Google容器引擎托管Kubernetes主服务器,并且我无法直接访问该虚拟机,如何在不使用注释的情况下配置kube-proxy代理模式?理想情况下,我可以更改群集范围的设置,以便新节点(在自动缩放之后)也使用userspace代理模式.

kubernetes google-kubernetes-engine kube-proxy

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

无需 kubectl 代理即可访问 Kubernetes 仪表板

如果我移动一个相关的配置文件并运行kubectl proxy它,它将允许我通过这个 URL 访问 Kubernetes 仪表板:

http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/
Run Code Online (Sandbox Code Playgroud)

但是,如果我尝试直接访问节点,而没有kubectl proxy,则会收到 403 Forbidden。

http://dev-master:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/#!/login
Run Code Online (Sandbox Code Playgroud)

我们的 kubernetes 集群隐藏在用户需要 VPN 的私有网络中;此外,在对 VPN 进行身份验证后,只有我们中的一些人可以与我们每个集群的主节点交谈。因此,运行kubectl proxy是一个多余的步骤,为每个集群选择合适的配置文件是一个额外的痛苦,尤其是当我们想要比较不同集群的状态时。

需要更改哪些内容以允许“匿名”HTTP 访问这些已受保护的 kubernetes 主节点的仪表板?

kubernetes kubectl kube-proxy kubernetes-dashboard kube-apiserver

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

Kubernetes Pod 内的互联网连接无法正常工作

无法从 Pod 内部连接到互联网

我的系统规格包括:我使用 2 个系统创建了一个 Kubernetes 集群,一个作为主节点,另一个作为工作节点。

操作系统:名称 =“Red Hat Enterprise Linux”版本 =“8.3 (Ootpa)”ID =“rhel”。

我使用以下链接安装了 Kuberenetes 集群(https://dzone.com/articles/kubernetes-installation-in-redhat-c ​​entos )

我尝试了 CALICO pod 网络和 Flannel pod 网络,因为都发生了同样的问题。无法从 Pod 内部连接到互联网

请参阅下图了解更多详情

在此输入图像描述

您可以看到所有 Pod 都已启动并正在运行。

我的 coredns pod 也已启动并正在运行,并且相应的服务也已启动,请检查下图

在此输入图像描述

调试

为了调试,我尝试使用此链接(https://kubernetes.io/docs/tasks/administer-cluster/dns-debugging-resolution/

每当我执行 nslookup 时,它都会显示错误(;; 连接超时;无法访问服务器,命令以退出代码 1 终止)

请看下面的图片

在此输入图像描述

谁能告诉我问题到底出在哪里。为什么我无法从 Pod 内部连接到互联网

任何帮助将不胜感激,谢谢。

docker kubernetes kube-proxy kubernetes-pod kubernetes-service

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

限制仅某些 Pod 访问服务

我有一个 mosquitto 代理在 pod 上运行,该服务器作为 DNS 和 IP 地址作为服务公开。

但集群中的任何 pod 都可以访问该服务。

我想限制对此服务的访问,以便尝试连接到此 DNS 或 IP 地址的 Pod 只能在具有特定名称/元数据的情况下才能进行。

我想一种解决方案是使用命名空间?还有什么其他解决方案?

kubernetes kube-proxy kubernetes-ingress kubernetes-pod

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

Kubernetes Pod 无法解析外部主机

我正在运行一个3 节点 Kubernetes 集群,其中 Flannel 作为 CNI。我使用 kubeadm 设置集群,版本是 1.23。

我的 Pod 需要使用 DNS 地址与外部主机通信,但这些主机没有 DNS 服务器。为此,我已将它们的条目添加到集群中每个节点的 /etc/hosts 中。节点可以从 DNS 解析主机,但 Pod 无法解析它们。

我尝试通过互联网搜索这个问题,并有建议使用 HostAlias 或更新容器内的 /etc/hosts 文件。我的问题是主机列表很大,在 yaml 文件中维护列表是不可行的。

我还查看了 Kubernetes 是否有一些内置标志来让 Pod 在 Node 的 /etc/hosts 中查找条目,但找不到它。

所以我的问题是 -

  1. 为什么节点上运行的 pod 无法解析 /etc/hosts 文件中存在的主机。
  2. 有没有办法设置本地 DNS 服务器并要求所有 Pod 查询该 DNS 服务器以获取特定主机解析?

也欢迎任何其他建议或解决方法。

dns kubernetes flannel kube-proxy

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

NodePort服务并非在所有节点上都可用

我正在尝试运行一个3节点的Kubernetes集群。我已经建立了集群并充分运行,以使服务在不同的节点上运行。不幸的是,我似乎无法使基于NodePort的服务正常工作(因为我仍然理解正确性……)。我的问题是,我定义的任何NodePort服务仅在运行其pod的节点上可以在外部使用,而我的理解是,它们在群集中的任何节点上都可以在外部使用。

一个示例是本地Jira服务,该服务应在端口8082(内部)和外部32760上运行。这是服务定义(仅是服务部分):

apiVersion: v1
kind: Service
metadata:
  name: jira
  namespace: wittlesouth
spec:
  ports:
  - port: 8082
  selector:
    app: jira
  type: NodePort
Run Code Online (Sandbox Code Playgroud)

这是kubectl get service --namespace wittle south的输出

NAME       TYPE           CLUSTER-IP      EXTERNAL-IP                       PORT(S)          AGE
jenkins    NodePort       10.100.119.22   <none>                            8081:31377/TCP   3d
jira       NodePort       10.105.148.66   <none>                            8082:32760/TCP   9h
ws-mysql   ExternalName   <none>          mysql.default.svc.cluster.local   3306/TCP         1d
Run Code Online (Sandbox Code Playgroud)

此服务的容器的主机端口设置为8082。群集中的三个节点为nuc1,nuc2,nuc3:

Eric:~ eric$ kubectl get nodes
NAME      STATUS    ROLES     AGE       VERSION
nuc1      Ready     master    3d        v1.9.2
nuc2      Ready     <none>    2d        v1.9.2
nuc3      Ready     <none>    2d        v1.9.2
Run Code Online (Sandbox Code Playgroud)

以下是尝试通过主机和节点端口访问Jira实例的结果:

Eric:~ eric$ …
Run Code Online (Sandbox Code Playgroud)

kubernetes kube-proxy

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

在准备好的 Kubernetes 本地集群上的 Kube 代理中启用 IPVS 模式

我想在现有集群中为IPVS启用Kube-proxy模式。目前,它在 IPtables 上运行。如何在不影响现有工作负载的情况下将其更改为 IPVS?

我已经安装了所有必需的模块来启用它。另外,我的集群是使用 kubeadm 安装的,但是在安装过程中我没有使用配置文件。在我的集群上启用 IPVS 的确切命令应该是什么。

文档1

文档2

kubernetes kubeadm kube-proxy kubeconfig

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

Kube-Proxy 和 Kube-Flannel CrashLoopBackOff

我在本地服务器中有一个 Kubernetes 集群,我在Naver Cloud上也有一个服务器,我们可以称之为server A,我想加入我的server AKubernetes 集群,服务器可以正常加入,但是从 daemonset 生成的 podkube-proxykube-flannelpod 一直在CrashLoopBackOff地位

这是来自的日志kube-proxy

I0405 03:13:48.566285       1 node.go:163] Successfully retrieved node IP: 10.1.0.2
I0405 03:13:48.566382       1 server_others.go:109] "Detected node IP" address="10.1.0.2"
I0405 03:13:48.566420       1 server_others.go:535] "Using iptables proxy"
I0405 03:13:48.616989       1 server_others.go:176] "Using iptables Proxier"
I0405 03:13:48.617021       1 server_others.go:183] "kube-proxy running in dual-stack mode" ipFamily=IPv4
I0405 03:13:48.617040       1 server_others.go:184] "Creating dualStackProxier for iptables"
I0405 03:13:48.617063       1 server_others.go:465] "Detect-local-mode set …
Run Code Online (Sandbox Code Playgroud)

kubernetes flannel kube-proxy

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

kube-proxy`--masquerade-all = true`是什么意思?

KUBE-代理管理页说:

--masquerade-all       If using the pure iptables proxy, SNAT everything
Run Code Online (Sandbox Code Playgroud)

但它确实详细解释了.

  • --masquerade-all什么时候应该设置为true?
  • 它解决了什么问题?
  • 如果设置会发生什么--masquerade-all=false?有什么区别--masqurade-all=true

kubernetes kube-proxy

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