Loading

k8s-"hostNetwork: true"网络

kubernetes "hostNetwork: true",这是一种直接定义Pod网络的方式。如果在POD中

使用"hostNetwork: true"配置网络,pod中运行的应用程序可以直接看到宿主主机的网

络接口,宿主机所在的局域网上所有网络接口都可以访问到该应用程序及端口。

示例:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx
spec:
  replicas: 2
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      hostNetwork: true
      # 使用主机网络
      dnsPolicy: ClusterFirstWithHostNet
      # 该设置是使POD使用k8s的dns,dns配置在/etc/resolv.conf文件中
      # 如果不加,pod默认使用所在宿主主机使用的DNS,这样会导致容器
      # 内不能通过service name访问k8s集群中其他POD
      containers:
      - name: nginx
        image: nginx:1.7.9
        #ports:
        #  - name: metrics
        #    hostPort: 80
        #    containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
  name: nginx
spec:
  selector:
    app: nginx
  type: NodePort
  ports:
    -
      name: http
      port: 80
      targetPort: 80
      protocol: TCP
      nodePort: 30080

 

80端口是使用pod的"hostNetwork: true"方式暴露的,30080端口是使用service的"type: NodePort"方式暴露的。

 

posted @ 2021-08-13 19:11  云起时。  阅读(9080)  评论(0编辑  收藏  举报