转自: https://blog.csdn.net/huqigang/article/details/76428017
将容器应用的端口号映射到物理机上,包括两种方式
1 通过设置容器级别的hostPort,将容器应用的端口号映射到物理机上。
建立Pod的yaml为:pod-hostport.yaml。需要注意,在yaml中不要使用tab,同时缩进会影响yaml中的数据结构,注意检查缩进。
apiVersion: v1
kind: Pod
metadata:
name: webapp
labels:
app: webapp
spec:
containers:
- name: webapp
image: kubeguide/tomcat-app:v2
ports:
- containerPort: 8080
hostPort: 8081
备注: 当指定hostPort之后,同一台宿主机将无法启动该容器的第2份副本。
2 设置Pod级别的hostNetwork=true。
该Pod中所有容器的端口号都将直接被映射到物理机上。如果容器的ports定义部分如果不指定hostPort,则默认hostPort等于containerPort。否则,指定的hostPort必须等于containerPort的值。
在此,直接编写pod-hostnetwork-rc.yaml。
apiVersion: v1
kind: ReplicationController
metadata:
name: hostnetwork
labels:
app: hostnetwork
spec:
replicas: 1
selector:
app: hostnetwork
template:
metadata:
labels:
app: hostnetwork
spec:
hostNetwork: true
containers:
- name: hostnetwork
image: kubeguide/tomcat-app:v2
ports:
- containerPort: 8080