轉自: 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