在編排kubernetes時,Deployment的Pod項有containerPort,Service文件里的port,targetPort, nodePort,這些pod概念有些時候可能會讓人感到非常困惑,這里通過示例來簡單介紹各種port的含義
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: tomcat-deployment
spec:
replicas: 3
template:
metadata:
labels:
app: tomcat
tier: frontend
spec:
containers:
name: tomcat
image: docker.cinyi.com:443/tomcat
ports:
containerPort: 80 #這里containerPort是容器內部的port
apiVersion: v1
kind: Service
metadata:
name: tomcat-server
spec:
type: NodePort
ports:
port: 11111 #service暴露在cluster ip上的端口,通過<cluster ip>:port訪問服務,通過此端口集群內的服務可以相互訪問
targetPort: 8080 #Pod的外部訪問端口,port和nodePort的數據通過這個端口進入到Pod內部,Pod里面的containers的端口映射到這個端口,提供服務
nodePort: 30001 #Node節點的端口,<nodeIP>:nodePort 是提供給集群外部客戶訪問service的入口
selector:
tier: frontend