无法在端口3000的kubernetes上访问应用

时间:2018-08-17 11:04:47

标签: docker kubernetes

我已经将docker应用程序部署到了docker hub https://hub.docker.com/r/leexha/nodejsapp/上。

我通过做一个码头工人拉动验证了这一点,并做了function my_deregister_scripts(){ wp_dequeue_script( 'wp-embed' ); } add_action( 'wp_footer', 'my_deregister_scripts' );

我正在尝试将其部署到kubernetes中。这是我的docker run docker run -p 8000:3000 index.docker.io/leexha/nodejsapp:latest文件:

deploy.yml

然后我将部署作为服务公开:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: secondapp
spec:
  replicas: 3
  template:
    metadata:
      labels:
        app: webapp
    spec:
      containers:
      - name: webapp
        image: index.docker.io/leexha/nodejsapp
        ports:
        - containerPort: 3000
        resources:
          requests: 
            memory: 500Mi
            cpu: 0.5
          limits:
            memory: 500Mi
            cpu: 0.5
        imagePullPolicy: Always

似乎一切正常,但是当我尝试访问群集上的应用程序(:3000)时,无法访问它。

因此,我尝试进行一些调试。

我做到了:

C:\Users\adrlee\Desktop\oracle\Web_projects>kubectl get nodes
NAME              STATUS     ROLES     AGE       VERSION
xxxxxxxxxxx   Ready      node      1d        v1.8.11
yyyyyyyyyyy    NotReady   node      1d        v1.8.11
zzzzzzzzzzz    Ready      node      1d        v1.8.11

C:\Users\adrlee\Desktop\oracle\Web_projects>kubectl get deployments
NAME       DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
firstapp   3         3         3            3           6m

C:\Users\adrlee\Desktop\oracle\Web_projects>kubectl expose deployment/firstapp --type="NodePort" --port 3000
service "firstapp" exposed

C:\Users\adrlee\Desktop\oracle\Web_projects>kubectl get services
NAME         TYPE        CLUSTER-IP    EXTERNAL-IP   PORT(S)          AGE
firstapp     NodePort    10.96.156.3   <none>        3000:31872/TCP   10s
kubernetes   ClusterIP   10.96.0.1     <none>        443/TCP          1d

我卷发了

export POD_NAME=$(kubectl get pods -o go-template --template '{{range .items}}                                       {{.metadata.name}}{{"\n"}}{{end}}')

我注意到此回复:

curl http://localhost:8001/api/v1/namespaces/default/pods/$POD_NAME/proxy/

Little失去了现在该做什么。需要任何帮助吗?

1 个答案:

答案 0 :(得分:1)

如果将类型字段设置为NodePort,则Kubernetes主服务器将在kube-apiserver中的--service-node-port-range标志(默认值:30000-32767)指定的范围内分配端口。

尝试使用此默认范围内的端口,或检查主服务器上的kube-apiserver服务以获取特定的自定义范围。