Created
March 22, 2019 12:14
-
-
Save khash/4b7c9a231547641145056b82ef1f56b2 to your computer and use it in GitHub Desktop.
Nginx Ingress Controller
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| apiVersion: v1 | |
| kind: ServiceAccount | |
| metadata: | |
| name: nginx-ingress-serviceaccount | |
| namespace: kube-system | |
| --- | |
| apiVersion: rbac.authorization.k8s.io/v1beta1 | |
| kind: ClusterRole | |
| metadata: | |
| name: nginx-ingress-clusterrole | |
| rules: | |
| - apiGroups: | |
| - "" | |
| resources: | |
| - configmaps | |
| - endpoints | |
| - nodes | |
| - pods | |
| - secrets | |
| verbs: | |
| - list | |
| - watch | |
| - apiGroups: | |
| - "" | |
| resources: | |
| - nodes | |
| verbs: | |
| - get | |
| - apiGroups: | |
| - "" | |
| resources: | |
| - services | |
| verbs: | |
| - get | |
| - list | |
| - watch | |
| - apiGroups: | |
| - "extensions" | |
| resources: | |
| - ingresses | |
| verbs: | |
| - get | |
| - list | |
| - watch | |
| - apiGroups: | |
| - "" | |
| resources: | |
| - events | |
| verbs: | |
| - create | |
| - patch | |
| - apiGroups: | |
| - "extensions" | |
| resources: | |
| - ingresses/status | |
| verbs: | |
| - update | |
| --- | |
| apiVersion: rbac.authorization.k8s.io/v1beta1 | |
| kind: Role | |
| metadata: | |
| name: nginx-ingress-role | |
| namespace: kube-system | |
| rules: | |
| - apiGroups: | |
| - "" | |
| resources: | |
| - configmaps | |
| - pods | |
| - secrets | |
| - namespaces | |
| verbs: | |
| - get | |
| - apiGroups: | |
| - "" | |
| resources: | |
| - configmaps | |
| resourceNames: | |
| # Defaults to "<election-id>-<ingress-class>" | |
| # Here: "<ingress-controller-leader>-<nginx>" | |
| # This has to be adapted if you change either parameter | |
| # when launching the nginx-ingress-controller. | |
| - "ingress-controller-leader-nginx" | |
| verbs: | |
| - get | |
| - update | |
| - apiGroups: | |
| - "" | |
| resources: | |
| - configmaps | |
| verbs: | |
| - create | |
| - apiGroups: | |
| - "" | |
| resources: | |
| - endpoints | |
| verbs: | |
| - get | |
| --- | |
| apiVersion: rbac.authorization.k8s.io/v1beta1 | |
| kind: RoleBinding | |
| metadata: | |
| name: nginx-ingress-role-nisa-binding | |
| namespace: kube-system | |
| roleRef: | |
| apiGroup: rbac.authorization.k8s.io | |
| kind: Role | |
| name: nginx-ingress-role | |
| subjects: | |
| - kind: ServiceAccount | |
| name: nginx-ingress-serviceaccount | |
| namespace: kube-system | |
| --- | |
| apiVersion: rbac.authorization.k8s.io/v1beta1 | |
| kind: ClusterRoleBinding | |
| metadata: | |
| name: nginx-ingress-clusterrole-nisa-binding | |
| roleRef: | |
| apiGroup: rbac.authorization.k8s.io | |
| kind: ClusterRole | |
| name: nginx-ingress-clusterrole | |
| subjects: | |
| - kind: ServiceAccount | |
| name: nginx-ingress-serviceaccount | |
| namespace: kube-system | |
| --- | |
| apiVersion: v1 | |
| kind: Service | |
| metadata: | |
| namespace: kube-system | |
| name: nginx-ingress-lb | |
| labels: | |
| app: nginx-ingress-lb | |
| spec: | |
| type: LoadBalancer | |
| externalTrafficPolicy: Local | |
| ports: | |
| - port: 80 | |
| name: http | |
| targetPort: 80 | |
| - port: 443 | |
| name: https | |
| targetPort: 443 | |
| selector: | |
| # Selects nginx-ingress-controller pods | |
| k8s-app: nginx-ingress-controller | |
| --- | |
| apiVersion: extensions/v1beta1 | |
| kind: Deployment | |
| metadata: | |
| name: default-http-backend | |
| labels: | |
| k8s-app: default-http-backend | |
| namespace: kube-system | |
| spec: | |
| replicas: 1 | |
| template: | |
| metadata: | |
| labels: | |
| k8s-app: default-http-backend | |
| spec: | |
| terminationGracePeriodSeconds: 60 | |
| containers: | |
| - name: default-http-backend | |
| # Any image is permissable as long as: | |
| # 1. It serves a 404 page at / | |
| # 2. It serves 200 on a /healthz endpoint | |
| image: gcr.io/google_containers/defaultbackend:1.0 | |
| livenessProbe: | |
| httpGet: | |
| path: /healthz | |
| port: 8080 | |
| scheme: HTTP | |
| initialDelaySeconds: 30 | |
| timeoutSeconds: 5 | |
| ports: | |
| - containerPort: 8080 | |
| resources: | |
| limits: | |
| cpu: 10m | |
| memory: 20Mi | |
| requests: | |
| cpu: 10m | |
| memory: 20Mi | |
| --- | |
| apiVersion: v1 | |
| kind: Service | |
| metadata: | |
| namespace: kube-system | |
| name: default-http-backend | |
| labels: | |
| k8s-app: default-http-backend | |
| spec: | |
| ports: | |
| - port: 80 | |
| targetPort: 8080 | |
| selector: | |
| k8s-app: default-http-backend | |
| --- | |
| apiVersion: v1 | |
| kind: ConfigMap | |
| metadata: | |
| name: nginx-configuration | |
| namespace: kube-system | |
| labels: | |
| app: nginx-ingress-lb | |
| data: | |
| log-format-upstream: '{ "time": "$time_iso8601", "remote_addr": "$proxy_protocol_addr", | |
| "x-forward-for": "$proxy_add_x_forwarded_for", "request_id": "$request_id", "remote_user": | |
| "$remote_user", "bytes_sent": $bytes_sent, "request_time": $request_time, "status": | |
| $status, "vhost": "$host", "request_proto": "$server_protocol", "path": "$uri", | |
| "request_query": "$args", "request_length": $request_length, "duration": $request_time, | |
| "method": "$request_method", "http_referrer": "$http_referer", "http_user_agent": | |
| "$http_user_agent" }' | |
| --- | |
| apiVersion: extensions/v1beta1 | |
| kind: DaemonSet | |
| metadata: | |
| namespace: kube-system | |
| name: nginx-ingress-controller | |
| labels: | |
| k8s-app: nginx-ingress-controller | |
| spec: | |
| template: | |
| metadata: | |
| labels: | |
| k8s-app: nginx-ingress-controller | |
| spec: | |
| terminationGracePeriodSeconds: 60 | |
| serviceAccountName: nginx-ingress-serviceaccount | |
| containers: | |
| - image: quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.17.1 | |
| name: nginx-ingress-controller | |
| readinessProbe: | |
| httpGet: | |
| path: /healthz | |
| port: 10254 | |
| scheme: HTTP | |
| livenessProbe: | |
| httpGet: | |
| path: /healthz | |
| port: 10254 | |
| scheme: HTTP | |
| initialDelaySeconds: 10 | |
| timeoutSeconds: 1 | |
| ports: | |
| - containerPort: 80 | |
| hostPort: 80 | |
| - containerPort: 443 | |
| hostPort: 443 | |
| env: | |
| - name: POD_NAME | |
| valueFrom: | |
| fieldRef: | |
| fieldPath: metadata.name | |
| - name: POD_NAMESPACE | |
| valueFrom: | |
| fieldRef: | |
| fieldPath: metadata.namespace | |
| args: | |
| - /nginx-ingress-controller | |
| - --default-backend-service=kube-system/default-http-backend | |
| - --publish-service=kube-system/nginx-ingress-lb | |
| - --configmap=$(POD_NAMESPACE)/nginx-configuration |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment