首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >K8s迷你库无法访问托管的http (外部)服务

K8s迷你库无法访问托管的http (外部)服务
EN

Stack Overflow用户
提问于 2022-03-10 09:01:10
回答 1查看 455关注 0票数 0

环境

v1.25.2

  • kubectl
  • Windows 10 OS
  • WSL2 ( minikube正在使用Linux容器)
  • minikube v1.23.0

用例

mongo express

  • Internal服务,用于访问mongodb

  • External服务(LoadBalancer),用于从浏览器

访问芒果表达式。

手头的问题

运行以下命令将在服务EndPoint上打开一个浏览器,但是mongo页面不会加载,给出“这个站点无法到达

代码语言:javascript
复制
minikube.exe service mongo-express-service

YAML档案

mongo-deployment.yaml

代码语言:javascript
复制
apiVersion: apps/v1
kind: Deployment
metadata:
  name: mongodb-deployment
  labels:
    app: mongodb
spec:
  replicas: 1
  selector:
    matchLabels:
      app: mongodb
  template:
    metadata:
      labels:
        app: mongodb
    spec:
      containers:
      - name: mongodb
        image: mongo
        ports:
        - containerPort: 27017
        env:
        - name: MONGO_INITDB_ROOT_USERNAME
          valueFrom:
            secretKeyRef:
              name: mongodb-secret
              key: mongo-root-username
        - name: MONGO_INITDB_ROOT_PASSWORD
          valueFrom:
            secretKeyRef:
              name: mongodb-secret
              key:  mongo-root-password
---
apiVersion: v1
kind: Service
metadata:
  name: mongodb-service
spec:
  selector:
    app: mongodb
  ports:
    - protocol: TCP
      port: 27017
      targetPort: 27017

mongoexpress-deployment.yaml

代码语言:javascript
复制
apiVersion: apps/v1
kind: Deployment
metadata:
  name: mongo-express
  labels:
    app: mongo-express
spec:
  replicas: 1
  selector:
    matchLabels:
      app: mongo-express
  template:
    metadata:
      labels:
        app: mongo-express
    spec:
      containers:
      - name: mongo-express
        image: mongo-express
        ports:
          - containerPort: 8081
        env:
          - name: ME_CONFIG_MONGODB_ADMINUSERNAME
            valueFrom:
              secretKeyRef:
                name: mongodb-secret
                key: mongo-root-username
          - name: ME_CONFIG_MONGODB_ADMINPASSWORD
            valueFrom:
              secretKeyRef:
                name: mongodb-secret
                key:  mongo-root-password
          - name: ME_CONFIG_MONGODB_SERVER
            valueFrom:
              configMapKeyRef:
                name: mongodb-configmap
                key: database_url
---
apiVersion: v1
kind: Service
metadata:
  name: mongo-express-service
spec:
  selector:
    app: mongo-express
  type: LoadBalancer
  ports:
    - protocol: TCP
      port: 8081
      targetPort: 8081
      nodePort: 30000

mongo-configmap.yaml

代码语言:javascript
复制
apiVersion: v1
kind: ConfigMap
metadata:
  name: mongodb-configmap
data:
  database_url: mongodb-service

mongo-secret.yaml

代码语言:javascript
复制
apiVersion: v1
kind: Secret
metadata:
  name: mongodb-secret
type: Opaque
data:
  mongo-root-username: cm9vdA==
  mongo-root-password: ZXhhbXBsZQ==

.\kubectl.exe获得所有-o的宽度

代码语言:javascript
复制
NAME                                      READY   STATUS    RESTARTS      AGE   IP           NODE       NOMINATED NODE   READINESS GATES
pod/mongo-express-68c4748bd6-5qnnh        1/1     Running   2 (16h ago)   20h   172.17.0.3   minikube   <none>           <none>
pod/mongodb-deployment-7bb6c6c4c7-w2bdx   1/1     Running   1 (16h ago)   22h   172.17.0.4   minikube   <none>           <none>

NAME                            TYPE           CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE   SELECTOR
service/kubernetes              ClusterIP      10.96.0.1        <none>        443/TCP          8d    <none>
service/mongo-express-service   LoadBalancer   10.108.182.35    <pending>     8081:30000/TCP   20h   app=mongo-express
service/mongodb-service         ClusterIP      10.107.207.139   <none>        27017/TCP        21h   app=mongodb

NAME                                 READY   UP-TO-DATE   AVAILABLE   AGE   CONTAINERS      IMAGES          SELECTOR
deployment.apps/mongo-express        1/1     1            1           20h   mongo-express   mongo-express   app=mongo-express
deployment.apps/mongodb-deployment   1/1     1            1           22h   mongodb         mongo           app=mongodb

NAME                                            DESIRED   CURRENT   READY   AGE   CONTAINERS      IMAGES          SELECTOR
replicaset.apps/mongo-express-68c4748bd6        1         1         1       20h   mongo-express   mongo-express   app=mongo-express,pod-template-hash=68c4748bd6
replicaset.apps/mongo-express-6f76745c84        0         0         0       20h   mongo-express   mongo-express   app=mongo-express,pod-template-hash=6f76745c84
replicaset.apps/mongodb-deployment-7bb6c6c4c7   1         1         1       22h   mongodb         mongo           app=mongodb,pod-template-hash=7bb6c6c4c7

在执行 minikube.exe service mongo-service浏览器在 上打开并返回“E 137此站点无法到达192.168.49.2时,响应时间太长。E 238e 139”,如果我使用回环IP,我做错了什么?E 240

EN

回答 1

Stack Overflow用户

发布于 2022-03-10 10:43:59

嗯,看来我不得不使用小型隧道才能进入该服务,奇怪的是,芒果快递服务是在8081港口,而不是30000.我想这是因为它通过隧道而不是直接进入。

代码语言:javascript
复制
kubectl get svc
NAME                    TYPE           CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE
kubernetes              ClusterIP      10.96.0.1        <none>        443/TCP          8d
mongo-express-service   LoadBalancer   10.108.182.35    127.0.0.1     8081:30000/TCP   22h
mongodb-service         ClusterIP      10.107.207.139   <none>        27017/TCP        23h
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71421383

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档