【发布时间】:2019-07-26 12:44:39
【问题描述】:
我正在使用 minikube 在最新的 MacOS 上测试 kubernetes。
这是我的相关 YAML:
namespace.yml
apiVersion: v1
kind: Namespace
metadata:
name: micro
labels:
name: micro
deployment.yml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: adderservice
spec:
replicas: 1
template:
metadata:
labels:
run: adderservice
spec:
containers:
- name: adderservice
image: jeromesoung/adderservice:0.0.1
ports:
- containerPort: 8080
service.yml
apiVersion: v1
kind: Service
metadata:
name: adderservice
labels:
run: adderservice
spec:
ports:
- port: 8080
name: main
protocol: TCP
targetPort: 8080
selector:
run: adderservice
type: NodePort
运行minikube start后,我部署的步骤如下:
kubectl create -f namespace.yml创建命名空间kubectl config set-context minikube --namespace=microkubectl create -f deployment.ymlkubectl create -f service.yml
然后,我使用以下命令获取 NodeIP 和 NodePort:
-
kubectl get services获取 NodePort
$ kubectl get services
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
adderservice NodePort 10.99.155.255 <none> 8080:30981/TCP 21h
-
minikube ip获取nodeIP
$ minikube ip
192.168.99.103
但是当我卷曲时,我总是得到 Connection Refused 像这样:
$ curl http://192.168.99.103:30981/add/1/2
curl: (7) Failed to connect to 192.168.99.103 port 30981: Connection refused
所以我检查了node、pod、deployment和endpoint如下:
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
minikube Ready master 23h v1.13.3
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
adderservice-5b567df95f-9rrln 1/1 Running 0 23h
$ kubectl get deployments
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
adderservice 1 1 1 1 23h
$ kubectl get endpoints
NAME ENDPOINTS AGE
adderservice 172.17.0.5:8080 21h
我还检查了 minikube 的服务列表:
$ minikube service -n micro adderservice --url
http://192.168.99.103:30981
我已经阅读了很多关于通过 NodePorts 访问 k8s 服务的帖子。据我所知,我应该可以毫无问题地访问该应用程序。我唯一怀疑的是我正在使用自定义命名空间。这会导致访问问题吗?
我知道命名空间会改变 DNS,所以,为了完整起见,我还运行了以下命令:
$ kubectl exec -ti adderservice-5b567df95f-9rrln -- nslookup kubernetes.default
Server: 10.96.0.10
Address: 10.96.0.10#53
Name: kubernetes.default.svc.cluster.local
Address: 10.96.0.1
$ kubectl exec -ti adderservice-5b567df95f-9rrln -- nslookup kubernetes.micro
Server: 10.96.0.10
Address: 10.96.0.10#53
Non-authoritative answer:
Name: kubernetes.micro
Address: 198.105.244.130
Name: kubernetes.micro
Address: 104.239.207.44
谁能帮帮我?谢谢。
【问题讨论】:
-
这是自定义图片吗?你在 docker 上也遇到同样的问题吗?
-
是的,这是我的 docker 镜像,仅用于测试目的。在我本地的 docker 容器中几乎没有运行时没有问题。
-
ADDERSERVICE_SERVICE_HOST的值是多少? -
这里根据netstat的输出默认为[::]
-
您可以手动将其分配为
0.0.0.0吗?
标签: docker kubernetes namespaces minikube