Skip to content
Snippets Groups Projects
kube-proxy.manifest.j2 2.72 KiB
Newer Older
  • Learn to ignore specific revisions
  • apiVersion: v1
    kind: Pod
    metadata:
      name: kube-proxy
    
      labels:
        k8s-app: kube-proxy
    
      annotations:
        kubespray.kube-proxy-cert/serial: "{{ kube_proxy_cert_serial }}"
    
    {% if kube_version | version_compare('v1.6', '>=') %}
    
      dnsPolicy: ClusterFirst
    
    {% endif %}
    
        image: {{ hyperkube_image_repo }}:{{ hyperkube_image_tag }}
    
        imagePullPolicy: {{ k8s_image_pull_policy }}
    
        resources:
          limits:
            cpu: {{ kube_proxy_cpu_limit }}
            memory: {{ kube_proxy_memory_limit }}
          requests:
            cpu: {{ kube_proxy_cpu_requests }}
            memory: {{ kube_proxy_memory_requests }}
    
        livenessProbe:
          httpGet:
            host: 127.0.0.1
            path: /healthz
            port: 10256
          failureThreshold: 8
          initialDelaySeconds: 15
          periodSeconds: 10
          successThreshold: 1
          timeoutSeconds: 15
    
        - --v={{ kube_log_level }}
    
    jwfang's avatar
    jwfang committed
        - --kubeconfig={{kube_config_dir}}/kube-proxy-kubeconfig.yaml
    
        - --bind-address={{ ip | default(ansible_default_ipv4.address) }}
    
        - --cluster-cidr={{ kube_pods_subnet }}
    
        - --proxy-mode={{ kube_proxy_mode }}
    
        - --oom-score-adj=-998
    
        - --healthz-bind-address=127.0.0.1
    
    {% if kube_proxy_masquerade_all and kube_proxy_mode == "iptables" %}
        - --masquerade-all
    
    {% elif kube_proxy_mode == 'ipvs' %}
        - --masquerade-all
    
    {% if kube_version | version_compare('v1.10', '<') %}
    
        - --feature-gates=SupportIPVSProxyMode=true
    
    {% endif %}
    
        - --ipvs-min-sync-period=5s
        - --ipvs-sync-period=5s
        - --ipvs-scheduler=rr
    
        securityContext:
          privileged: true
        volumeMounts:
        - mountPath: /etc/ssl/certs
          name: ssl-certs-host
          readOnly: true
    
    jwfang's avatar
    jwfang committed
        - mountPath: "{{ kube_config_dir }}/ssl"
          name: etc-kube-ssl
    
    jwfang's avatar
    jwfang committed
        - mountPath: "{{ kube_config_dir }}/kube-proxy-kubeconfig.yaml"
          name: kubeconfig
    
        - mountPath: /var/run/dbus
    
    jwfang's avatar
    jwfang committed
          name: var-run-dbus
    
          readOnly: false
    
        - mountPath: /lib/modules
          name: lib-modules
          readOnly: true
    
        - mountPath: /run/xtables.lock
          name: xtables-lock
          readOnly: false
    
    {% if ansible_os_family == 'RedHat' %}
          path: /etc/pki/tls
    {% else %}
    
    {% endif %}
    
    jwfang's avatar
    jwfang committed
      - name: etc-kube-ssl
    
    jwfang's avatar
    jwfang committed
          path: "{{ kube_config_dir }}/ssl"
      - name: kubeconfig
    
    jwfang's avatar
    jwfang committed
          path: "{{ kube_config_dir }}/kube-proxy-kubeconfig.yaml"
      - name: var-run-dbus
    
    jwfang's avatar
    jwfang committed
          path: /var/run/dbus
    
      - hostPath:
          path: /lib/modules
        name: lib-modules
    
      - hostPath:
          path: /run/xtables.lock
          type: FileOrCreate
        name: xtables-lock