当前位置: 首页 > 知识库问答 >
问题:

docker - k8s本地部署,访问不到怎么办?

谭仰岳
2023-05-30

我用自己的mac,装了docker,并在docker的dashboard中装了k8s,如下:
image.png
docker版本
image.png
k8s版本
image.png
我自己搞了个简单nodejs后端服务,放进docker部署,浏览器访问效果如下
image.png
curl访问
image.png
我配置了k8s的deployment和service,如下:

deployment

apiVersion: apps/v1
kind: Deployment
metadata:
    name: web-server
    namespace: test
    labels:
        deploy: nodejs-server
spec:
    selector:
        matchLabels:
            pod: nodejs-web-server
    replicas: 1
    revisionHistoryLimit: 1
    progressDeadlineSeconds: 60
    strategy:
        rollingUpdate:
            maxSurge: 50%
            maxUnavailable: 1
        type: RollingUpdate
    template: # 定义pod
        metadata:
            labels:
                pod: nodejs-web-server
        spec:
            containers:
                - name: web-service-server
                  image: web-service-image
                  imagePullPolicy: IfNotPresent
                  ports:
                      - containerPort: 8081
            restartPolicy: Always

service

apiVersion: v1
kind: Service
metadata:
    name: node-server
    namespace: test
    labels:
        service: service-test
spec:
    selector:
        pod: nodejs-web-server
    type: ClusterIP
    ports:
        - name: server-port
          protocol: TCP
          targetPort: 8081 #pod对外暴露的端口
          port: 8881 #service监听的端口

deployment信息
image.png
pod信息:
image.png
service信息
image.png
按理来说现在我使用curl命令访问clusterip是可以访问到的,但是:
image.png
浏览器也访问失败,我又配置了一下ingress试了一下
ingress配置:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
    name: test-ingress
    namespace: test
spec:
    rules:
        - host: localhost
          http:
              paths:
                  - path: /
                    pathType: Prefix
                    backend:
                        service:
                            name: node-server
                            port:
                                number: 8881

image.png
还是访问不了!
现在怀疑两个可能的问题,一个可能是我的deployment和service配置没写对,另一个就是网络问题,也有可能是在docker的dashboard中装的k8s有问题(但这个不应该啊)。总之改了很多次配置试了很多次,就是通不了,求大神帮忙看看!谢谢!!!

共有1个答案

微生永春
2023-05-30

service的ClusterIP改成NodePort就好了,ClusterIP是集群内部访问的

 类似资料:
  • 我尝试部署我创建的本地容器映像之一,但总是得到以下错误 无法拉出映像“webrole1:dev”:rpc错误:code=未知desc=守护进程的错误响应:对webrole1的拉出访问被拒绝,存储库不存在或可能需要“docker登录”:被拒绝:请求访问 我已经按照下面的文章来容器我的应用程序,我能够成功地完成这一点,但当我试图将它部署到k8s pod时,我没有成功 下面是我的PowerShell中的

  • 本文向大家介绍Docker学习笔记之k8s部署方法,包括了Docker学习笔记之k8s部署方法的使用技巧和注意事项,需要的朋友参考一下 本文记录了如何在ubuntu 14.04裸机上部署k8s集群,参考自官方文档。 拓扑结构 1master + 2minion k8s-master 192.168.0.201 master k8s-node1 192.168.0.202 minion k8s-no

  • 我的组织有很多针对不同项目的API。我需要一个OpenAPI实现,它允许我为我们所有的产品创建一个包含所有这些API(更像是一个存储库)的独立门户。 有支持这一点的OpenAPI吗? 另一种选择是:能够将多个实例合并到单个OpenAPI实例。

  • 这是我的default.config文件设置 但是怎么搞我的线上项目请求都是跨域状态

  • 本文向大家介绍浅析docker-compose部署mysql无法访问的问题,包括了浅析docker-compose部署mysql无法访问的问题的使用技巧和注意事项,需要的朋友参考一下 什么是Docker-Compose Compose项目来源于之前的fig项目,使用python语言编写,与docker/swarm配合度很高。Compose 是 Docker 容器进行编排的工具,定义和运行多容器的应

  • 本文向大家介绍Docker Swarm从部署到基本操作,包括了Docker Swarm从部署到基本操作的使用技巧和注意事项,需要的朋友参考一下 关于Docker Swarm Docker Swarm由两部分组成: Docker集群:将一个或多个Docker节点组织起来,用户就能以集群的方式进行管理; 应用编排:有一套API用来部署和管理容器; 官方资料:https://docs.docker.co