【发布时间】:2019-07-05 12:24:38
【问题描述】:
我正在使用 kubernetes 并运行一项服务。服务正在运行并显示在服务中。但我无法从实例的公共 ip 访问它。下面是我的部署文件。
apiVersion: v1
kind: Service
metadata:
name: apache-service
spec:
selector:
app: apache
ports:
- protocol: TCP
port: 80
targetPort: 80
type: NodePort
---
apiVersion: apps/v1 # for versions before 1.9.0 use apps/v1beta2
kind: Deployment
metadata:
name: apache-deployment
spec:
selector:
matchLabels:
app: apache
replicas: 2 # tells deployment to run 2 pods matching the template
template:
metadata:
labels:
app: apache
spec:
containers:
- name: apache
image: mobingi/ubuntu-apache2-php7:7.2
ports:
- containerPort: 80
这是我的服务清单。
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
apache-service NodePort 10.106.242.181 <none> 80:31807/TCP 9m5s
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 11m
但是当我使用集群和节点的公共 ip 从以下 telnet 检查相同的服务时。它没有响应。
telnet public-ip:31807
任何类型的帮助都将是可观的。
【问题讨论】:
-
这是工作 curl 10.106.242.181
-
您是在本地(例如 Minikube、microk8s)还是在托管集群(EKS、GKE)上部署它?
-
基本检查:如果你
kubectl get pods,它是否正在运行?如果你kubectl describe service apache-service,它是否连接到吊舱?您的主机或网络是否有任何类型的防火墙设置,默认情况下会阻止连接(iptables,AWS 安全组,...)?
标签: docker kubernetes devops kubernetes-pod