最近在搞K8s里的编排文件,对于Deployment Pod里的containerPort,Service文件里的port,targetPort, nodePort有些糊涂,趁现在还清楚,赶紧简单写下来。
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
root@kubernetes nginx]# kubectl describe service tomcat-server
Name: tomcat-server
Namespace: default
Labels: <none>
Selector: tier=frontend
Type: NodePort
IP: 10.254.222.139 #cluster IP 的地址
Port: <unset> 11111/TCP #cluster IP 的端口
NodePort: <unset> 30001/TCP # nodeport 的端口
Endpoints: 10.0.223.3:8080,10.0.224.2:8080,10.0.225.2:8080 #容器的服务端口
Session Affinity: None
No events.
网友评论