我在谷歌云上进行了这样的设置:
其中mysql服务器和redis服务器的kubernetes配置文件 几乎相同,唯一不同的是名称、端口和镜像。
我可以从网络应用程序连接mysql 服务器,但无法连接redis 服务器。
另外,我无法从 Web 应用程序在其服务 CLUSTER-IP 上连接Redis 服务器,但我可以在其 pod IP 上连接Redis 服务器。
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: redis
spec:
replicas: 1
selector:
matchLabels:
app: redis
template:
metadata:
labels:
app: redis
spec:
containers:
- name: redis
image: launcher.gcr.io/google/redis4
resources:
requests:
cpu: 100m
memory: 100Mi
ports:
- containerPort: 6379
env:
---
apiVersion: v1
kind: Service
metadata:
name: redis
labels:
app: redis
role: master
tier: backend
spec:
selector:
app: redis
role: master
tier: backend
ports:
- port: 6379
targetPort: 6379
Run Code Online (Sandbox Code Playgroud)
部署规范缺少一些标签,因此服务未选择它。
当前部署规范:
metadata:
labels:
app: redis
Run Code Online (Sandbox Code Playgroud)
包括服务所需的其他标签:
metadata:
labels:
app: redis
role: metadata
tier: backend
Run Code Online (Sandbox Code Playgroud)
或者根据您想要如何看待它,服务规范正在尝试匹配不存在的标签,您可以从以下位置更改服务:
selector:
app: redis
role: master
tier: backend
Run Code Online (Sandbox Code Playgroud)
到:
selector:
app: redis
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2589 次 |
最近记录: |