我的工作Docker容器在Kubernetes上没有打开的端口



我有一个简单的NodeJS应用程序,我已经创建了它的映像。我可以启动它并在本地与它交谈:docker run -p 80:80 -it --rm --name test gcr.io/XXX/XXX:0.1

$ curl docker => Unauthorized如预期。

Kubernetes

webservice复制控制器。yml:

apiVersion: v1
kind: ReplicationController
metadata:
  name: harvester-webservice
spec:
  replicas: 2
  selector:
    app: harvester-webservice
  template:
    metadata:
      labels:
        app: harvester-webservice
    spec:
      containers:
      - name: harvester-webservice
        image: gcr.io/XXX/XXX
        ports:
        - containerPort: 80

网络服务。yml

apiVersion: v1
kind: Service
metadata:
  name: harvester-webservice
  labels:
    name: harvester-webservice
spec:
  type: LoadBalancer
  ports:
    -
      port: 80
      targetPort: 80
      protocol: TCP
  selector:
    name: harvester-webservice

我已经启动集群如下:

$ kubectl create -f webservice-service.yml
$ kubectl create -f webservice-replication-controller.yml
$ kubectl get pods
NAME                                    READY     STATUS    RESTARTS   AGE
harvester-webservice-controller-8qmkl   1/1       Running   0          11m
harvester-webservice-controller-chnky   1/1       Running   0          11m
$ kubectl get services
NAME                   LABELS                                    SELECTOR                    IP(S)            PORT(S)
harvester-webservice   name=harvester-webservice                 name=harvester-webservice   10.NN.NN.NN    80/TCP
                                                                                             104.NN.NN.NN
kubernetes             component=apiserver,provider=kubernetes   <none>                      10.NN.NN.NN      443/TCP
$ kubectl get rc
CONTROLLER                        CONTAINER(S)           IMAGE(S)         SELECTOR                   REPLICAS
harvester-webservice-controller   harvester-webservice   gcr.io/XXX/XXX   app=harvester-webservice   2

curl 104.NNN.NNN.NNN返回:curl: (56) Recv failure: Connection reset by peer

curl 10.NNN.NNN.NNN刚刚挂起

当我ssh到容器中并在Node应用程序上执行docker logs时,日志是应该的。

所有提示或建议都高度重视!

$ kubectl get endpoints
NAME                   ENDPOINTS
harvester-webservice   <none>
kubernetes             104.NN.NN.NN:443

最佳,Martin

webservice-service.yml中的选择器更改为app: harvester-webservice,使其与webservice-replication-controller.yml中的标签匹配。

另请参阅Kubernetes中的服务。

最新更新