K8S Ports 区别
当 K8S Service 类型为 NodePort 时,有以下几种 Port 设置参数:
-
nodePort
K8S 外部可访问的端口(默认范围是 30000-32767)
-
port
K8S 内部可访问的端口
-
targetPort
K8S 服务监听的端口
示例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
#nginx-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
|
部署 deployment 后可以通过 pods 的内网 IP 访问 80 端口,但外网无法访问。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
#nginx-service.yaml
apiVersion: v1
kind: Service
metadata:
name: nginx
spec:
type: NodePort
selector:
app: nginx
ports:
- protocol: TCP
port: 8080
targetPort: 80
nodePort: 30036
|
部署 service 后可以通过 service 的内网 Cluster IP 访问 8080 端口
此时外网也可以访问 nodeIP:nodePort
参考资料
- https://matthewpalmer.net/kubernetes-app-developer/articles/service-kubernetes-example-tutorial.html