Kubernetes 无法在群集中访问ClusterIP

Kubernetes 无法在群集中访问ClusterIP,kubernetes,containers,devops,kubernetes-service,Kubernetes,Containers,Devops,Kubernetes Service,我在与库伯纳斯的配置作斗争。我想要得到的只是在集群中进行部署。集群位于我的专用服务器上,我正在使用Kubeadm进行部署 我的节点: $ kubectl get nodes NAME STATUS ROLES AGE VERSION k8s-master Ready master 9d v1.19.3 k8s-worker1 Ready <none> 9d v1.19.3 我已经创建了一个服务 $ kubec

我在与库伯纳斯的配置作斗争。我想要得到的只是在集群中进行部署。集群位于我的专用服务器上,我正在使用Kubeadm进行部署

我的节点:

$ kubectl get nodes
NAME          STATUS   ROLES    AGE   VERSION
k8s-master    Ready    master   9d    v1.19.3
k8s-worker1   Ready    <none>   9d    v1.19.3
我已经创建了一个服务

$ kubectl get svc
NAME         TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)   AGE
kubernetes   ClusterIP   10.96.0.1       <none>        443/TCP   9d
my-service   ClusterIP   10.106.109.94   <none>        80/TCP    20m
现在,如果我在我的
k8s主机上运行
curl 10.106.109.94:80
,我应该可以得到http答案。。但我得到的是:

curl: (7) Failed to connect to 10.106.109.94 port 80: Connection refused

我也尝试过使用
NodePort
targetPort
NodePort
但结果是一样的。

群集ip无法从群集外部访问,这意味着您将无法从承载k8s群集的主机获得任何响应,因为此ip不是您的机器或任何主机的一部分另一台机器,而不是您的群集CNI网络(如flunnel、weave)使用的群集ip。 因此,要从外部或至少从主机访问您的服务,您必须更改服务的类型,如NodePort、LoadBalancer、K8s port forward

如果您可以更改服务类型NodePort,那么您将获得任何主机ip和分配的NodePort的响应。 例如,如果您的k8s主机是192.168.x.x,节点端口是33303,那么您可以通过

curl http://192.168.x.x:33303
or
curl http://worker_node_ip:33303
如果您的集群是本地安装的,那么您可以安装以获得负载平衡器的权限

您还可以使用port forward从具有k8s群集访问权限的kubectl客户端的主机访问您的服务

kubectl port-forward svc/my-service 80:80

kubectl -n namespace port-forward svc/service_name Port:Port


你从哪里卷曲的?从集群内的节点或Pod?从节点主机运行集群的位置(云、prem、OS版本)?你是如何引导它的(kubeadm等)。请将您的yaml文件更新到问题中。在裸机上&使用kubeadm,谢谢,我已经更新了我的问题。我尝试切换到节点端口,从主节点切换到节点,我无法在工作节点上卷曲pod…我只可以在主节点上卷曲pod(端口80,而不是作为节点端口(31303))
curl http://192.168.x.x:33303
or
curl http://worker_node_ip:33303
kubectl port-forward svc/my-service 80:80

kubectl -n namespace port-forward svc/service_name Port:Port