来自 Release 0.25.0 版本,Ingress controller 安装需要文件

    1. apiVersion: v1
    2. kind: Namespace
    3. metadata:
    4. name: ingress-nginx
    5. labels:
    6. app.kubernetes.io/name: ingress-nginx
    7. app.kubernetes.io/part-of: ingress-nginx
    8. ---
    9. kind: ConfigMap
    10. apiVersion: v1
    11. metadata:
    12. name: nginx-configuration
    13. namespace: ingress-nginx
    14. labels:
    15. app.kubernetes.io/name: ingress-nginx
    16. app.kubernetes.io/part-of: ingress-nginx
    17. ---
    18. kind: ConfigMap
    19. apiVersion: v1
    20. metadata:
    21. name: tcp-services
    22. namespace: ingress-nginx
    23. labels:
    24. app.kubernetes.io/name: ingress-nginx
    25. app.kubernetes.io/part-of: ingress-nginx
    26. ---
    27. kind: ConfigMap
    28. apiVersion: v1
    29. metadata:
    30. name: udp-services
    31. namespace: ingress-nginx
    32. labels:
    33. app.kubernetes.io/name: ingress-nginx
    34. app.kubernetes.io/part-of: ingress-nginx
    35. ---
    36. apiVersion: v1
    37. kind: ServiceAccount
    38. metadata:
    39. name: nginx-ingress-serviceaccount
    40. namespace: ingress-nginx
    41. labels:
    42. app.kubernetes.io/name: ingress-nginx
    43. app.kubernetes.io/part-of: ingress-nginx
    44. ---
    45. apiVersion: rbac.authorization.k8s.io/v1beta1
    46. kind: ClusterRole
    47. metadata:
    48. name: nginx-ingress-clusterrole
    49. labels:
    50. app.kubernetes.io/name: ingress-nginx
    51. app.kubernetes.io/part-of: ingress-nginx
    52. rules:
    53. - apiGroups:
    54. - ""
    55. resources:
    56. - configmaps
    57. - endpoints
    58. - nodes
    59. - pods
    60. - secrets
    61. verbs:
    62. - list
    63. - watch
    64. - apiGroups:
    65. - ""
    66. resources:
    67. - nodes
    68. verbs:
    69. - get
    70. - apiGroups:
    71. - ""
    72. resources:
    73. - services
    74. verbs:
    75. - get
    76. - list
    77. - watch
    78. - apiGroups:
    79. - "extensions"
    80. resources:
    81. - ingresses
    82. verbs:
    83. - get
    84. - list
    85. - watch
    86. - apiGroups:
    87. - ""
    88. resources:
    89. - events
    90. verbs:
    91. - create
    92. - patch
    93. - apiGroups:
    94. - "extensions"
    95. resources:
    96. - ingresses/status
    97. verbs:
    98. - update
    99. - apiGroups:
    100. - "extensions"
    101. - "networking.k8s.io"
    102. resources:
    103. - ingresses
    104. verbs:
    105. - list
    106. - watch
    107. ---
    108. apiVersion: rbac.authorization.k8s.io/v1beta1
    109. kind: Role
    110. metadata:
    111. name: nginx-ingress-role
    112. namespace: ingress-nginx
    113. labels:
    114. app.kubernetes.io/name: ingress-nginx
    115. app.kubernetes.io/part-of: ingress-nginx
    116. rules:
    117. - apiGroups:
    118. - ""
    119. resources:
    120. - configmaps
    121. - pods
    122. - secrets
    123. - namespaces
    124. verbs:
    125. - get
    126. - apiGroups:
    127. - ""
    128. resources:
    129. - configmaps
    130. resourceNames:
    131. # Defaults to "<election-id>-<ingress-class>"
    132. # Here: "<ingress-controller-leader>-<nginx>"
    133. # This has to be adapted if you change either parameter
    134. # when launching the nginx-ingress-controller.
    135. - "ingress-controller-leader-nginx"
    136. verbs:
    137. - get
    138. - update
    139. - apiGroups:
    140. - ""
    141. resources:
    142. - configmaps
    143. verbs:
    144. - create
    145. - apiGroups:
    146. - ""
    147. resources:
    148. - endpoints
    149. verbs:
    150. - get
    151. ---
    152. apiVersion: rbac.authorization.k8s.io/v1beta1
    153. kind: RoleBinding
    154. metadata:
    155. name: nginx-ingress-role-nisa-binding
    156. namespace: ingress-nginx
    157. labels:
    158. app.kubernetes.io/name: ingress-nginx
    159. app.kubernetes.io/part-of: ingress-nginx
    160. roleRef:
    161. apiGroup: rbac.authorization.k8s.io
    162. kind: Role
    163. name: nginx-ingress-role
    164. subjects:
    165. - kind: ServiceAccount
    166. name: nginx-ingress-serviceaccount
    167. namespace: ingress-nginx
    168. ---
    169. apiVersion: rbac.authorization.k8s.io/v1beta1
    170. kind: ClusterRoleBinding
    171. metadata:
    172. name: nginx-ingress-clusterrole-nisa-binding
    173. labels:
    174. app.kubernetes.io/name: ingress-nginx
    175. app.kubernetes.io/part-of: ingress-nginx
    176. roleRef:
    177. apiGroup: rbac.authorization.k8s.io
    178. kind: ClusterRole
    179. name: nginx-ingress-clusterrole
    180. subjects:
    181. - kind: ServiceAccount
    182. name: nginx-ingress-serviceaccount
    183. namespace: ingress-nginx
    184. ---
    185. apiVersion: apps/v1
    186. kind: Deployment
    187. metadata:
    188. name: nginx-ingress-controller
    189. namespace: ingress-nginx
    190. labels:
    191. app.kubernetes.io/name: ingress-nginx
    192. app.kubernetes.io/part-of: ingress-nginx
    193. spec:
    194. replicas: 1
    195. selector:
    196. matchLabels:
    197. app.kubernetes.io/name: ingress-nginx
    198. app.kubernetes.io/part-of: ingress-nginx
    199. template:
    200. metadata:
    201. labels:
    202. app.kubernetes.io/name: ingress-nginx
    203. app.kubernetes.io/part-of: ingress-nginx
    204. annotations:
    205. prometheus.io/port: "10254"
    206. prometheus.io/scrape: "true"
    207. spec:
    208. serviceAccountName: nginx-ingress-serviceaccount
    209. containers:
    210. - name: nginx-ingress-controller
    211. image: quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.25.0
    212. args:
    213. - /nginx-ingress-controller
    214. - --configmap=$(POD_NAMESPACE)/nginx-configuration
    215. - --tcp-services-configmap=$(POD_NAMESPACE)/tcp-services
    216. - --udp-services-configmap=$(POD_NAMESPACE)/udp-services
    217. - --publish-service=$(POD_NAMESPACE)/ingress-nginx
    218. - --annotations-prefix=nginx.ingress.kubernetes.io
    219. securityContext:
    220. allowPrivilegeEscalation: true
    221. capabilities:
    222. drop:
    223. - ALL
    224. add:
    225. - NET_BIND_SERVICE
    226. # www-data -> 33
    227. runAsUser: 33
    228. env:
    229. - name: POD_NAME
    230. valueFrom:
    231. fieldRef:
    232. fieldPath: metadata.name
    233. - name: POD_NAMESPACE
    234. valueFrom:
    235. fieldRef:
    236. fieldPath: metadata.namespace
    237. ports:
    238. - name: http
    239. containerPort: 80
    240. - name: https
    241. containerPort: 443
    242. livenessProbe:
    243. failureThreshold: 3
    244. httpGet:
    245. path: /healthz
    246. port: 10254
    247. scheme: HTTP
    248. initialDelaySeconds: 10
    249. periodSeconds: 10
    250. successThreshold: 1
    251. timeoutSeconds: 10
    252. readinessProbe:
    253. failureThreshold: 3
    254. httpGet:
    255. path: /healthz
    256. port: 10254
    257. scheme: HTTP
    258. periodSeconds: 10
    259. successThreshold: 1
    260. timeoutSeconds: 10
    261. ---