You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

520 lines
14 KiB

  1. ---
  2. kind: Deployment
  3. apiVersion: apps/v1
  4. metadata:
  5. name: kube-ovn-controller
  6. namespace: kube-system
  7. annotations:
  8. kubernetes.io/description: |
  9. kube-ovn controller
  10. spec:
  11. replicas: 1
  12. selector:
  13. matchLabels:
  14. app: kube-ovn-controller
  15. strategy:
  16. rollingUpdate:
  17. maxSurge: 0%
  18. maxUnavailable: 100%
  19. type: RollingUpdate
  20. template:
  21. metadata:
  22. labels:
  23. app: kube-ovn-controller
  24. component: network
  25. type: infra
  26. spec:
  27. tolerations:
  28. - operator: Exists
  29. affinity:
  30. podAntiAffinity:
  31. requiredDuringSchedulingIgnoredDuringExecution:
  32. - labelSelector:
  33. matchLabels:
  34. app: kube-ovn-controller
  35. topologyKey: kubernetes.io/hostname
  36. priorityClassName: system-cluster-critical
  37. serviceAccountName: ovn
  38. hostNetwork: true
  39. containers:
  40. - name: kube-ovn-controller
  41. image: {{ kube_ovn_container_image_repo }}:{{ kube_ovn_container_image_tag }}
  42. imagePullPolicy: {{ k8s_image_pull_policy }}
  43. command:
  44. - /kube-ovn/start-controller.sh
  45. args:
  46. - --default-cidr={{ kube_pods_subnet }}
  47. - --pod-nic-type=veth-pair
  48. env:
  49. - name: ENABLE_SSL
  50. value: "{{ enable_ssl | lower }}"
  51. - name: POD_NAME
  52. valueFrom:
  53. fieldRef:
  54. fieldPath: metadata.name
  55. - name: KUBE_NAMESPACE
  56. valueFrom:
  57. fieldRef:
  58. fieldPath: metadata.namespace
  59. - name: KUBE_NODE_NAME
  60. valueFrom:
  61. fieldRef:
  62. fieldPath: spec.nodeName
  63. volumeMounts:
  64. - mountPath: /etc/localtime
  65. name: localtime
  66. - mountPath: /var/run/tls
  67. name: kube-ovn-tls
  68. readinessProbe:
  69. exec:
  70. command:
  71. - bash
  72. - /kube-ovn/kube-ovn-controller-healthcheck.sh
  73. periodSeconds: 3
  74. timeoutSeconds: 45
  75. livenessProbe:
  76. exec:
  77. command:
  78. - bash
  79. - /kube-ovn/kube-ovn-controller-healthcheck.sh
  80. initialDelaySeconds: 300
  81. periodSeconds: 7
  82. failureThreshold: 5
  83. timeoutSeconds: 45
  84. resources:
  85. requests:
  86. cpu: {{ kube_ovn_controller_cpu_request }}
  87. memory: {{ kube_ovn_controller_memory_request }}
  88. limits:
  89. cpu: {{ kube_ovn_controller_cpu_limit }}
  90. memory: {{ kube_ovn_controller_memory_limit }}
  91. nodeSelector:
  92. kubernetes.io/os: "linux"
  93. volumes:
  94. - name: localtime
  95. hostPath:
  96. path: /etc/localtime
  97. - name: kube-ovn-tls
  98. secret:
  99. optional: true
  100. secretName: kube-ovn-tls
  101. ---
  102. kind: DaemonSet
  103. apiVersion: apps/v1
  104. metadata:
  105. name: kube-ovn-cni
  106. namespace: kube-system
  107. annotations:
  108. kubernetes.io/description: |
  109. This daemon set launches the kube-ovn cni daemon.
  110. spec:
  111. selector:
  112. matchLabels:
  113. app: kube-ovn-cni
  114. template:
  115. metadata:
  116. labels:
  117. app: kube-ovn-cni
  118. component: network
  119. type: infra
  120. spec:
  121. tolerations:
  122. - operator: Exists
  123. priorityClassName: system-cluster-critical
  124. serviceAccountName: ovn
  125. hostNetwork: true
  126. hostPID: true
  127. initContainers:
  128. - name: install-cni
  129. image: {{ kube_ovn_container_image_repo }}:{{ kube_ovn_container_image_tag }}
  130. imagePullPolicy: {{ k8s_image_pull_policy }}
  131. command: ["/kube-ovn/install-cni.sh"]
  132. securityContext:
  133. runAsUser: 0
  134. privileged: true
  135. volumeMounts:
  136. - mountPath: /opt/cni/bin
  137. name: cni-bin
  138. containers:
  139. - name: cni-server
  140. image: {{ kube_ovn_container_image_repo }}:{{ kube_ovn_container_image_tag }}
  141. imagePullPolicy: {{ k8s_image_pull_policy }}
  142. command:
  143. - bash
  144. - /kube-ovn/start-cniserver.sh
  145. args:
  146. - --enable-mirror={{ traffic_mirror | lower }}
  147. - --encap-checksum={{ encap_checksum | lower }}
  148. - --service-cluster-ip-range={{ kube_service_addresses }}
  149. securityContext:
  150. runAsUser: 0
  151. privileged: true
  152. env:
  153. - name: ENABLE_SSL
  154. value: "{{ enable_ssl | lower }}"
  155. - name: POD_IP
  156. valueFrom:
  157. fieldRef:
  158. fieldPath: status.podIP
  159. - name: KUBE_NODE_NAME
  160. valueFrom:
  161. fieldRef:
  162. fieldPath: spec.nodeName
  163. volumeMounts:
  164. - mountPath: /etc/openvswitch
  165. name: systemid
  166. - mountPath: /etc/cni/net.d
  167. name: cni-conf
  168. - mountPath: /run/openvswitch
  169. name: host-run-ovs
  170. - mountPath: /run/ovn
  171. name: host-run-ovn
  172. - mountPath: /var/run/netns
  173. name: host-ns
  174. mountPropagation: HostToContainer
  175. - mountPath: /etc/localtime
  176. name: localtime
  177. readinessProbe:
  178. exec:
  179. command:
  180. - nc
  181. - -z
  182. - -w3
  183. - 127.0.0.1
  184. - "10665"
  185. periodSeconds: 3
  186. livenessProbe:
  187. exec:
  188. command:
  189. - nc
  190. - -z
  191. - -w3
  192. - 127.0.0.1
  193. - "10665"
  194. initialDelaySeconds: 30
  195. periodSeconds: 7
  196. failureThreshold: 5
  197. nodeSelector:
  198. kubernetes.io/os: "linux"
  199. volumes:
  200. - name: systemid
  201. hostPath:
  202. path: /etc/origin/openvswitch
  203. - name: host-run-ovs
  204. hostPath:
  205. path: /run/openvswitch
  206. - name: host-run-ovn
  207. hostPath:
  208. path: /run/ovn
  209. - name: cni-conf
  210. hostPath:
  211. path: /etc/cni/net.d
  212. - name: cni-bin
  213. hostPath:
  214. path: /opt/cni/bin
  215. - name: host-ns
  216. hostPath:
  217. path: /var/run/netns
  218. - name: localtime
  219. hostPath:
  220. path: /etc/localtime
  221. ---
  222. kind: DaemonSet
  223. apiVersion: apps/v1
  224. metadata:
  225. name: kube-ovn-pinger
  226. namespace: kube-system
  227. annotations:
  228. kubernetes.io/description: |
  229. This daemon set launches the openvswitch daemon.
  230. spec:
  231. selector:
  232. matchLabels:
  233. app: kube-ovn-pinger
  234. updateStrategy:
  235. type: RollingUpdate
  236. template:
  237. metadata:
  238. labels:
  239. app: kube-ovn-pinger
  240. component: network
  241. type: infra
  242. spec:
  243. tolerations:
  244. - operator: Exists
  245. serviceAccountName: ovn
  246. hostPID: true
  247. containers:
  248. - name: pinger
  249. image: {{ kube_ovn_container_image_repo }}:{{ kube_ovn_container_image_tag }}
  250. imagePullPolicy: {{ k8s_image_pull_policy }}
  251. command: ["/kube-ovn/kube-ovn-pinger", "--external-address=114.114.114.114"]
  252. securityContext:
  253. runAsUser: 0
  254. privileged: false
  255. env:
  256. - name: ENABLE_SSL
  257. value: "{{ enable_ssl | lower }}"
  258. - name: POD_IP
  259. valueFrom:
  260. fieldRef:
  261. fieldPath: status.podIP
  262. - name: HOST_IP
  263. valueFrom:
  264. fieldRef:
  265. fieldPath: status.hostIP
  266. - name: POD_NAME
  267. valueFrom:
  268. fieldRef:
  269. fieldPath: metadata.name
  270. - name: NODE_NAME
  271. valueFrom:
  272. fieldRef:
  273. fieldPath: spec.nodeName
  274. volumeMounts:
  275. - mountPath: /lib/modules
  276. name: host-modules
  277. readOnly: true
  278. - mountPath: /run/openvswitch
  279. name: host-run-ovs
  280. - mountPath: /var/run/openvswitch
  281. name: host-run-ovs
  282. - mountPath: /var/run/ovn
  283. name: host-run-ovn
  284. - mountPath: /sys
  285. name: host-sys
  286. readOnly: true
  287. - mountPath: /etc/openvswitch
  288. name: host-config-openvswitch
  289. - mountPath: /var/log/openvswitch
  290. name: host-log-ovs
  291. - mountPath: /var/log/ovn
  292. name: host-log-ovn
  293. - mountPath: /etc/localtime
  294. name: localtime
  295. - mountPath: /var/run/tls
  296. name: kube-ovn-tls
  297. resources:
  298. requests:
  299. cpu: {{ kube_ovn_pinger_cpu_request }}
  300. memory: {{ kube_ovn_pinger_memory_request }}
  301. limits:
  302. cpu: {{ kube_ovn_pinger_cpu_limit }}
  303. memory: {{ kube_ovn_pinger_memory_limit }}
  304. nodeSelector:
  305. kubernetes.io/os: "linux"
  306. volumes:
  307. - name: host-modules
  308. hostPath:
  309. path: /lib/modules
  310. - name: host-run-ovs
  311. hostPath:
  312. path: /run/openvswitch
  313. - name: host-run-ovn
  314. hostPath:
  315. path: /run/ovn
  316. - name: host-sys
  317. hostPath:
  318. path: /sys
  319. - name: host-config-openvswitch
  320. hostPath:
  321. path: /etc/origin/openvswitch
  322. - name: host-log-ovs
  323. hostPath:
  324. path: /var/log/openvswitch
  325. - name: host-log-ovn
  326. hostPath:
  327. path: /var/log/ovn
  328. - name: localtime
  329. hostPath:
  330. path: /etc/localtime
  331. - name: kube-ovn-tls
  332. secret:
  333. optional: true
  334. secretName: kube-ovn-tls
  335. ---
  336. kind: Deployment
  337. apiVersion: apps/v1
  338. metadata:
  339. name: kube-ovn-monitor
  340. namespace: kube-system
  341. annotations:
  342. kubernetes.io/description: |
  343. Metrics for OVN components: northd, nb and sb.
  344. spec:
  345. replicas: 1
  346. strategy:
  347. rollingUpdate:
  348. maxSurge: 0
  349. maxUnavailable: 1
  350. type: RollingUpdate
  351. selector:
  352. matchLabels:
  353. app: kube-ovn-monitor
  354. template:
  355. metadata:
  356. labels:
  357. app: kube-ovn-monitor
  358. component: network
  359. type: infra
  360. spec:
  361. tolerations:
  362. - operator: Exists
  363. affinity:
  364. podAntiAffinity:
  365. requiredDuringSchedulingIgnoredDuringExecution:
  366. - labelSelector:
  367. matchLabels:
  368. app: kube-ovn-monitor
  369. topologyKey: kubernetes.io/hostname
  370. priorityClassName: system-cluster-critical
  371. serviceAccountName: ovn
  372. containers:
  373. - name: kube-ovn-monitor
  374. image: {{ kube_ovn_container_image_repo }}:{{ kube_ovn_container_image_tag }}
  375. imagePullPolicy: {{ k8s_image_pull_policy }}
  376. command: ["/kube-ovn/start-ovn-monitor.sh"]
  377. securityContext:
  378. runAsUser: 0
  379. privileged: false
  380. env:
  381. - name: ENABLE_SSL
  382. value: "{{ enable_ssl | lower }}"
  383. - name: KUBE_NODE_NAME
  384. valueFrom:
  385. fieldRef:
  386. fieldPath: spec.nodeName
  387. resources:
  388. requests:
  389. cpu: {{ kube_ovn_monitor_cpu_request }}
  390. memory: {{ kube_ovn_monitor_memory_request }}
  391. limits:
  392. cpu: {{ kube_ovn_monitor_cpu_limit }}
  393. memory: {{ kube_ovn_monitor_memory_limit }}
  394. volumeMounts:
  395. - mountPath: /var/run/openvswitch
  396. name: host-run-ovs
  397. - mountPath: /var/run/ovn
  398. name: host-run-ovn
  399. - mountPath: /sys
  400. name: host-sys
  401. readOnly: true
  402. - mountPath: /etc/openvswitch
  403. name: host-config-openvswitch
  404. - mountPath: /etc/ovn
  405. name: host-config-ovn
  406. - mountPath: /var/log/openvswitch
  407. name: host-log-ovs
  408. - mountPath: /var/log/ovn
  409. name: host-log-ovn
  410. - mountPath: /etc/localtime
  411. name: localtime
  412. - mountPath: /var/run/tls
  413. name: kube-ovn-tls
  414. readinessProbe:
  415. exec:
  416. command:
  417. - cat
  418. - /var/run/ovn/ovnnb_db.pid
  419. periodSeconds: 3
  420. timeoutSeconds: 45
  421. livenessProbe:
  422. exec:
  423. command:
  424. - cat
  425. - /var/run/ovn/ovn-nbctl.pid
  426. initialDelaySeconds: 30
  427. periodSeconds: 10
  428. failureThreshold: 5
  429. timeoutSeconds: 45
  430. nodeSelector:
  431. kubernetes.io/os: "linux"
  432. kube-ovn/role: "master"
  433. volumes:
  434. - name: host-run-ovs
  435. hostPath:
  436. path: /run/openvswitch
  437. - name: host-run-ovn
  438. hostPath:
  439. path: /run/ovn
  440. - name: host-sys
  441. hostPath:
  442. path: /sys
  443. - name: host-config-openvswitch
  444. hostPath:
  445. path: /etc/origin/openvswitch
  446. - name: host-config-ovn
  447. hostPath:
  448. path: /etc/origin/ovn
  449. - name: host-log-ovs
  450. hostPath:
  451. path: /var/log/openvswitch
  452. - name: host-log-ovn
  453. hostPath:
  454. path: /var/log/ovn
  455. - name: localtime
  456. hostPath:
  457. path: /etc/localtime
  458. - name: kube-ovn-tls
  459. secret:
  460. optional: true
  461. secretName: kube-ovn-tls
  462. ---
  463. kind: Service
  464. apiVersion: v1
  465. metadata:
  466. name: kube-ovn-monitor
  467. namespace: kube-system
  468. labels:
  469. app: kube-ovn-monitor
  470. spec:
  471. ports:
  472. - name: metrics
  473. port: 10661
  474. type: ClusterIP
  475. selector:
  476. app: kube-ovn-monitor
  477. sessionAffinity: None
  478. ---
  479. kind: Service
  480. apiVersion: v1
  481. metadata:
  482. name: kube-ovn-pinger
  483. namespace: kube-system
  484. labels:
  485. app: kube-ovn-pinger
  486. spec:
  487. selector:
  488. app: kube-ovn-pinger
  489. ports:
  490. - port: 8080
  491. name: metrics
  492. ---
  493. kind: Service
  494. apiVersion: v1
  495. metadata:
  496. name: kube-ovn-controller
  497. namespace: kube-system
  498. labels:
  499. app: kube-ovn-controller
  500. spec:
  501. selector:
  502. app: kube-ovn-controller
  503. ports:
  504. - port: 10660
  505. name: metrics
  506. ---
  507. kind: Service
  508. apiVersion: v1
  509. metadata:
  510. name: kube-ovn-cni
  511. namespace: kube-system
  512. labels:
  513. app: kube-ovn-cni
  514. spec:
  515. selector:
  516. app: kube-ovn-cni
  517. ports:
  518. - port: 10665
  519. name: metrics