我在我的 k8s 上部署了一个 mysql pod,下面是配置代码,我对端口感到很困惑:
kind: Deployment
...
containers:
- ports:
- containerPort: 3306 # @1
---
apiVersion: v1
kind: Service
metadata:
name: mysql
labels:
app: mysql
spec:
selector:
app: mysql
# way 1
ports:
- port: 3306 # @2
targetPort: 3306 # @3
# way 2
type: NodePort
ports:
- port: 3306
targetPort: 3306
nodePort: 30600
问题1:谁代理了这个port?问题2:这是什么port? 我的意思是container已经暴露了port3306,而且服务也暴露了。那这在单一节点中不冲突吗? 问题3:这个port是不是意味着其container暴露了?
问题4:当我使用方式1部署它时,如何从pods&我的本地机器访问MySQL服务器?
问题5:当我使用方法2部署它时,如何从pods&我的本地机器访问MySQL服务器?