我有
我所做的
我正在尝试使用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) 我看到最近的一个pull请求被合并以删除net.experimental.kubernetes.io/proxy-mode和net.beta.kubernetes.io/proxy-mode注释.
当proxymode设置为时userspace,我的应用程序的反向代理服务器当前工作得更好,我想在升级后继续使用此设置.
由于Google容器引擎托管Kubernetes主服务器,并且我无法直接访问该虚拟机,如何在不使用注释的情况下配置kube-proxy代理模式?理想情况下,我可以更改群集范围的设置,以便新节点(在自动缩放之后)也使用userspace代理模式.
如果我移动一个相关的配置文件并运行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
无法从 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
我有一个 mosquitto 代理在 pod 上运行,该服务器作为 DNS 和 IP 地址作为服务公开。
但集群中的任何 pod 都可以访问该服务。
我想限制对此服务的访问,以便尝试连接到此 DNS 或 IP 地址的 Pod 只能在具有特定名称/元数据的情况下才能进行。
我想一种解决方案是使用命名空间?还有什么其他解决方案?
我正在运行一个3 节点 Kubernetes 集群,其中 Flannel 作为 CNI。我使用 kubeadm 设置集群,版本是 1.23。
我的 Pod 需要使用 DNS 地址与外部主机通信,但这些主机没有 DNS 服务器。为此,我已将它们的条目添加到集群中每个节点的 /etc/hosts 中。节点可以从 DNS 解析主机,但 Pod 无法解析它们。
我尝试通过互联网搜索这个问题,并有建议使用 HostAlias 或更新容器内的 /etc/hosts 文件。我的问题是主机列表很大,在 yaml 文件中维护列表是不可行的。
我还查看了 Kubernetes 是否有一些内置标志来让 Pod 在 Node 的 /etc/hosts 中查找条目,但找不到它。
所以我的问题是 -
也欢迎任何其他建议或解决方法。
我正在尝试运行一个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) 我想在现有集群中为IPVS启用Kube-proxy模式。目前,它在 IPtables 上运行。如何在不影响现有工作负载的情况下将其更改为 IPVS?
我已经安装了所有必需的模块来启用它。另外,我的集群是使用 kubeadm 安装的,但是在安装过程中我没有使用配置文件。在我的集群上启用 IPVS 的确切命令应该是什么。
我在本地服务器中有一个 Kubernetes 集群,我在Naver Cloud上也有一个服务器,我们可以称之为server A,我想加入我的server AKubernetes 集群,服务器可以正常加入,但是从 daemonset 生成的 podkube-proxy和kube-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) 该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?