我有一个 mongo yaml 和 web-app(NodeJS) yaml 设置如下:
mongo-config.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: mongo-config
data:
mongo-url: mongo-service
mongo-secret.yaml
apiVersion: v1
kind: Secret
metadata:
name: mongo-secret
type: Opaque
data:
mongo-user: bW9uZ291c2Vy
mongo-password: bW9uZ29wYXNzd29yZA==
mongo.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: mongo-deployment
labels:
app: mongo
spec:
replicas: 1
selector:
matchLabels:
app: mongo
# blueprint for pods, creates pods with mongo:5.0 image
template:
metadata:
labels:
app: mongo
spec:
containers:
- name: mongodb
image: mongo:5.0
ports:
- containerPort: 27017
env:
- name: MONGO_INITDB_ROOT_USERNAME
valueFrom:
secretKeyRef:
name: mongo-secret
key: mongo-user
- name: MONGO_INITDB_ROOT_PASSWORD
valueFrom:
secretKeyRef:
name: mongo-secret
key: mongo-password
---
# kind: service
# name: any
# selector: select pods to forward the requests to
apiVersion: v1
kind: Service
metadata:
name: mongo-service
spec:
selector:
app: mongo
ports:
- protocol: TCP
port: 8080
targetPort: 27017
和 webapp.yaml:
apiVersion: apps/v1
kind: Deployment
metadata:
name: webapp-deployment
labels:
app: webapp
spec:
replicas: 1
selector:
matchLabels:
app: webapp
# blueprint for pods, creates pods with mongo:5.0 image
template:
metadata:
labels:
app: webapp
spec:
containers:
- name: webapp
image: nanajanashia/k8s-demo-app:v1.0
ports:
- containerPort: 3000
env:
- name: USER_NAME
valueFrom:
secretKeyRef:
name: mongo-secret
key: mongo-user
- name: USER_PWD
valueFrom:
secretKeyRef:
name: mongo-secret
key: mongo-password
- name: DB_URL
valueFrom:
configMapKeyRef:
name: mongo-config
key: mongo-url
---
# kind: service
# name: any
# selector: select pods to forward the requests to
apiVersion: v1
kind: Service
metadata:
name: webapp-service
spec:
# default ClusterIP
# nodeport = external service
type: NodePort
selector:
app: webapp
ports:
- protocol: TCP
port: 3000
targetPort: 3000
nodePort: 30100
我为每个文件运行了命令 kubectl 应用-f 我检查了返回的网络应用程序的状态: 应用程序正在监听端口 3000! 我通过以下方式获得了IP地址 minikube ip
端口是30100 为什么我无法访问此网络应用程序? 我收到无法访问网站的错误。
如果您使用的是 Mac,请检查您的 minikube 驱动程序。我必须停下来,删除 minikube,然后重新启动,同时指定 hyperkit 驱动程序,如下所示。
minikube stop
minikube delete
docker start --vm-driver=hyperkit
https://www.youtube.com/watch?v=s_o8dwzRlu4),这对我很有帮助。将其发布给未来的读者。
minikube service --url <name of the web service>
就我而言是
minikube service --url web-service
这给了我这个输出。
http://127.0.0.1:55969
❗ Because you are using a Docker driver on darwin, the terminal needs to be open to run it.
现在可以在浏览器中打开 URL http://127.0.0.1:55969
。希望这有帮助!