102 lines
No EOL
2.4 KiB
Markdown
102 lines
No EOL
2.4 KiB
Markdown
### hostPort或hostNetwork
|
||
#### hostNetwork
|
||
和containers平级的hostNetwork: true,表示pod使用宿主机网络,配合nodeSelector,把pod实例化在固定节点
|
||
```
|
||
apiVersion: apps/v1
|
||
kind: Deployment
|
||
metadata:
|
||
labels:
|
||
app: nginx
|
||
name: nginx-deployment
|
||
spec:
|
||
replicas: 1
|
||
selector:
|
||
matchLabels:
|
||
app: nginx
|
||
template:
|
||
metadata:
|
||
labels:
|
||
app: nginx
|
||
spec:
|
||
nodeSelector: # node节点选择器
|
||
role: master # node节点标签(Label)
|
||
hostNetwork: true # 使用node节点网络
|
||
containers:
|
||
- image: nginx
|
||
imagePullPolicy: IfNotPresent
|
||
name: nginx
|
||
ports:
|
||
```
|
||
#### hostPort
|
||
和hostNetwork相比多了映射能力,可以把容器端口映射为node节点不同端口,hostPort,当然也需要nodeSelector来固定节点,不然每次创建,节点不同,ip也会改变
|
||
```
|
||
apiVersion: apps/v1
|
||
kind: Deployment
|
||
metadata:
|
||
labels:
|
||
app: nginx
|
||
name: nginx-deployment
|
||
spec:
|
||
replicas: 1
|
||
selector:
|
||
matchLabels:
|
||
app: nginx
|
||
template:
|
||
metadata:
|
||
labels:
|
||
app: nginx
|
||
spec:
|
||
nodeSelector: # node节点选择器
|
||
role: master # node节点标签(Label)
|
||
containers:
|
||
- image: nginx
|
||
imagePullPolicy: IfNotPresent
|
||
name: nginx
|
||
ports:
|
||
- containerPort: 8080
|
||
hostPort: 80 #重点
|
||
```
|
||
### nodePort
|
||
访问方式:集群内任意节点ip加nodePort所配端口号
|
||
```
|
||
|
||
apiVersion: apps/v1
|
||
kind: Deployment
|
||
metadata:
|
||
labels:
|
||
app: nginx
|
||
name: nginx-deployment
|
||
spec:
|
||
replicas: 1
|
||
selector:
|
||
matchLabels:
|
||
app: nginx
|
||
template:
|
||
metadata:
|
||
labels:
|
||
app: nginx
|
||
spec:
|
||
containers:
|
||
- image: nginx
|
||
imagePullPolicy: IfNotPresent
|
||
name: nginx
|
||
ports:
|
||
- containerPort: 8080
|
||
---
|
||
apiVersion: v1
|
||
kind: Service
|
||
metadata:
|
||
name: nginx-pod-service
|
||
labels:
|
||
app: nginx #自身标签
|
||
spec:
|
||
type: NodePort # 类型ExternalName, ClusterIP, NodePort, and LoadBalancer
|
||
ports:
|
||
- port: 8080 # service在k8s集群内服务端口
|
||
targetPort: 8080 # 关联pod对外开放端口
|
||
nodePort: 30088 # 集群外访问端口,端口范围【30000-32767】
|
||
selector:
|
||
app: nginx # pod标签
|
||
```
|
||
### ingress
|
||
### kubectl port-forward |