当前位置:   article > 正文

三十四、Kubernetes1.25中Ingress介绍、安装_ingress 安装

ingress 安装

1、介绍

在前面文章中已经提到,Service对集群之外暴露服务的主要方式有两种:NotePort和LoadBalancer,但是这两种方式,都有一定的缺点:

  • NodePort方式的缺点是会占用很多集群机器的端口,那么当集群服务变多的时候,这个缺点就愈发明显

  • LB方式的缺点是每个service需要一个LB,浪费、麻烦,并且需要kubernetes之外设备的支持

基于这种现状,kubernetes提供了Ingress资源对象,Ingress只需要一个NodePort或者一个LB就可以满足暴露多个Service的需求。工作机制大致如下图表示:

实际上,Ingress相当于一个7层的负载均衡器,是kubernetes对反向代理的一个抽象,它的工作原理类似于Nginx,可以理解成在Ingress里建立诸多映射规则,Ingress Controller通过监听这些配置规则并转化成Nginx的反向代理配置 , 然后对外部提供服务。在这里有两个核心概念:

  • ingress:kubernetes中的一个对象,作用是定义请求如何转发到service的规则

  • ingress controller:具体实现反向代理及负载均衡的程序,对ingress定义的规则进行解析,根据配置的规则来实现请求转发,实现方式有很多,比如Nginx, Contour, Haproxy等等

Ingress(以Nginx为例)的工作原理如下:

  1. 用户编写Ingress规则,说明哪个域名对应kubernetes集群中的哪个Service

  2. Ingress控制器动态感知Ingress服务规则的变化,然后生成一段对应的Nginx反向代理配置

  3. Ingress控制器会将生成的Nginx配置写入到一个运行着的Nginx服务中,并动态更新

  4. 到此为止,其实真正在工作的就是一个Nginx了,内部配置了用户定义的请求转发规则

 

 2、Ingress环境搭建

2.1、ingress-nginx、k8s、alpine、nginx版本对照表

对标自己安装的k8s版本选择ingress-nginx版本

Ingress-NGINX versionk8s supported versionAlpine VersionNginx Version
v1.5.21.26, 1.25, 1.24, 1.233.17.21.21.6
v1.5.11.25, 1.24, 1.233.16.21.21.6
v1.4.01.25, 1.24, 1.23, 1.223.16.21.19.10†
v1.3.11.24, 1.23, 1.22, 1.21, 1.203.16.21.19.10†
v1.3.01.24, 1.23, 1.22, 1.21, 1.203.16.01.19.10†
v1.2.11.23, 1.22, 1.21, 1.20, 1.193.14.61.19.10†
v1.1.31.23, 1.22, 1.21, 1.20, 1.193.14.41.19.10†
v1.1.21.23, 1.22, 1.21, 1.20, 1.193.14.21.19.9†
v1.1.11.23, 1.22, 1.21, 1.20, 1.193.14.21.19.9†
v1.1.01.22, 1.21, 1.20, 1.193.14.21.19.9†
v1.0.51.22, 1.21, 1.20, 1.193.14.21.19.9†
v1.0.41.22, 1.21, 1.20, 1.193.14.21.19.9†
v1.0.31.22, 1.21, 1.20, 1.193.14.21.19.9†
v1.0.21.22, 1.21, 1.20, 1.193.14.21.19.9†
v1.0.11.22, 1.21, 1.20, 1.193.14.21.19.9†
v1.0.01.22, 1.21, 1.20, 1.193.13.51.20.1

 2.2、官网教程

官网地址:Installation Guide - NGINX Ingress Controller

如果是自己从头搭建,请选择这个教程

本节适用于部署在裸机服务器上的 Kubernetes 集群,以及使用通用 Linux 发行版(如 CentOS、Ubuntu...)手动安装 Kubernetes 的“原始”VM。

 安装方式:

  1. # 官网代码 拷贝过来的,注意此处的版本,因为我的k8s是1.25 所以必须安装1.5.1及以上版本 大家根据自己的k8s版本更换版本号
  2. kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.5.1/deploy/static/provider/baremetal/deploy.yaml
  3. # 如果有梯子 网络都正常,使用官网的代码则可以,如果网络不通,建议直接浏览器访问 地址:https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.5.1/deploy/static/provider/baremetal/deploy.yaml 下载保存,然后更改 镜像地址

 更改后的yaml

  1. apiVersion: v1
  2. kind: Namespace
  3. metadata:
  4. labels:
  5. app.kubernetes.io/instance: ingress-nginx
  6. app.kubernetes.io/name: ingress-nginx
  7. name: ingress-nginx
  8. ---
  9. apiVersion: v1
  10. automountServiceAccountToken: true
  11. kind: ServiceAccount
  12. metadata:
  13. labels:
  14. app.kubernetes.io/component: controller
  15. app.kubernetes.io/instance: ingress-nginx
  16. app.kubernetes.io/name: ingress-nginx
  17. app.kubernetes.io/part-of: ingress-nginx
  18. app.kubernetes.io/version: 1.5.1
  19. name: ingress-nginx
  20. namespace: ingress-nginx
  21. ---
  22. apiVersion: v1
  23. kind: ServiceAccount
  24. metadata:
  25. labels:
  26. app.kubernetes.io/component: admission-webhook
  27. app.kubernetes.io/instance: ingress-nginx
  28. app.kubernetes.io/name: ingress-nginx
  29. app.kubernetes.io/part-of: ingress-nginx
  30. app.kubernetes.io/version: 1.5.1
  31. name: ingress-nginx-admission
  32. namespace: ingress-nginx
  33. ---
  34. apiVersion: rbac.authorization.k8s.io/v1
  35. kind: Role
  36. metadata:
  37. labels:
  38. app.kubernetes.io/component: controller
  39. app.kubernetes.io/instance: ingress-nginx
  40. app.kubernetes.io/name: ingress-nginx
  41. app.kubernetes.io/part-of: ingress-nginx
  42. app.kubernetes.io/version: 1.5.1
  43. name: ingress-nginx
  44. namespace: ingress-nginx
  45. rules:
  46. - apiGroups:
  47. - ""
  48. resources:
  49. - namespaces
  50. verbs:
  51. - get
  52. - apiGroups:
  53. - ""
  54. resources:
  55. - configmaps
  56. - pods
  57. - secrets
  58. - endpoints
  59. verbs:
  60. - get
  61. - list
  62. - watch
  63. - apiGroups:
  64. - ""
  65. resources:
  66. - services
  67. verbs:
  68. - get
  69. - list
  70. - watch
  71. - apiGroups:
  72. - networking.k8s.io
  73. resources:
  74. - ingresses
  75. verbs:
  76. - get
  77. - list
  78. - watch
  79. - apiGroups:
  80. - networking.k8s.io
  81. resources:
  82. - ingresses/status
  83. verbs:
  84. - update
  85. - apiGroups:
  86. - networking.k8s.io
  87. resources:
  88. - ingressclasses
  89. verbs:
  90. - get
  91. - list
  92. - watch
  93. - apiGroups:
  94. - ""
  95. resourceNames:
  96. - ingress-nginx-leader
  97. resources:
  98. - configmaps
  99. verbs:
  100. - get
  101. - update
  102. - apiGroups:
  103. - ""
  104. resources:
  105. - configmaps
  106. verbs:
  107. - create
  108. - apiGroups:
  109. - coordination.k8s.io
  110. resourceNames:
  111. - ingress-nginx-leader
  112. resources:
  113. - leases
  114. verbs:
  115. - get
  116. - update
  117. - apiGroups:
  118. - coordination.k8s.io
  119. resources:
  120. - leases
  121. verbs:
  122. - create
  123. - apiGroups:
  124. - ""
  125. resources:
  126. - events
  127. verbs:
  128. - create
  129. - patch
  130. - apiGroups:
  131. - discovery.k8s.io
  132. resources:
  133. - endpointslices
  134. verbs:
  135. - list
  136. - watch
  137. - get
  138. ---
  139. apiVersion: rbac.authorization.k8s.io/v1
  140. kind: Role
  141. metadata:
  142. labels:
  143. app.kubernetes.io/component: admission-webhook
  144. app.kubernetes.io/instance: ingress-nginx
  145. app.kubernetes.io/name: ingress-nginx
  146. app.kubernetes.io/part-of: ingress-nginx
  147. app.kubernetes.io/version: 1.5.1
  148. name: ingress-nginx-admission
  149. namespace: ingress-nginx
  150. rules:
  151. - apiGroups:
  152. - ""
  153. resources:
  154. - secrets
  155. verbs:
  156. - get
  157. - create
  158. ---
  159. apiVersion: rbac.authorization.k8s.io/v1
  160. kind: ClusterRole
  161. metadata:
  162. labels:
  163. app.kubernetes.io/instance: ingress-nginx
  164. app.kubernetes.io/name: ingress-nginx
  165. app.kubernetes.io/part-of: ingress-nginx
  166. app.kubernetes.io/version: 1.5.1
  167. name: ingress-nginx
  168. rules:
  169. - apiGroups:
  170. - ""
  171. resources:
  172. - configmaps
  173. - endpoints
  174. - nodes
  175. - pods
  176. - secrets
  177. - namespaces
  178. verbs:
  179. - list
  180. - watch
  181. - apiGroups:
  182. - coordination.k8s.io
  183. resources:
  184. - leases
  185. verbs:
  186. - list
  187. - watch
  188. - apiGroups:
  189. - ""
  190. resources:
  191. - nodes
  192. verbs:
  193. - get
  194. - apiGroups:
  195. - ""
  196. resources:
  197. - services
  198. verbs:
  199. - get
  200. - list
  201. - watch
  202. - apiGroups:
  203. - networking.k8s.io
  204. resources:
  205. - ingresses
  206. verbs:
  207. - get
  208. - list
  209. - watch
  210. - apiGroups:
  211. - ""
  212. resources:
  213. - events
  214. verbs:
  215. - create
  216. - patch
  217. - apiGroups:
  218. - networking.k8s.io
  219. resources:
  220. - ingresses/status
  221. verbs:
  222. - update
  223. - apiGroups:
  224. - networking.k8s.io
  225. resources:
  226. - ingressclasses
  227. verbs:
  228. - get
  229. - list
  230. - watch
  231. - apiGroups:
  232. - discovery.k8s.io
  233. resources:
  234. - endpointslices
  235. verbs:
  236. - list
  237. - watch
  238. - get
  239. ---
  240. apiVersion: rbac.authorization.k8s.io/v1
  241. kind: ClusterRole
  242. metadata:
  243. labels:
  244. app.kubernetes.io/component: admission-webhook
  245. app.kubernetes.io/instance: ingress-nginx
  246. app.kubernetes.io/name: ingress-nginx
  247. app.kubernetes.io/part-of: ingress-nginx
  248. app.kubernetes.io/version: 1.5.1
  249. name: ingress-nginx-admission
  250. rules:
  251. - apiGroups:
  252. - admissionregistration.k8s.io
  253. resources:
  254. - validatingwebhookconfigurations
  255. verbs:
  256. - get
  257. - update
  258. ---
  259. apiVersion: rbac.authorization.k8s.io/v1
  260. kind: RoleBinding
  261. metadata:
  262. labels:
  263. app.kubernetes.io/component: controller
  264. app.kubernetes.io/instance: ingress-nginx
  265. app.kubernetes.io/name: ingress-nginx
  266. app.kubernetes.io/part-of: ingress-nginx
  267. app.kubernetes.io/version: 1.5.1
  268. name: ingress-nginx
  269. namespace: ingress-nginx
  270. roleRef:
  271. apiGroup: rbac.authorization.k8s.io
  272. kind: Role
  273. name: ingress-nginx
  274. subjects:
  275. - kind: ServiceAccount
  276. name: ingress-nginx
  277. namespace: ingress-nginx
  278. ---
  279. apiVersion: rbac.authorization.k8s.io/v1
  280. kind: RoleBinding
  281. metadata:
  282. labels:
  283. app.kubernetes.io/component: admission-webhook
  284. app.kubernetes.io/instance: ingress-nginx
  285. app.kubernetes.io/name: ingress-nginx
  286. app.kubernetes.io/part-of: ingress-nginx
  287. app.kubernetes.io/version: 1.5.1
  288. name: ingress-nginx-admission
  289. namespace: ingress-nginx
  290. roleRef:
  291. apiGroup: rbac.authorization.k8s.io
  292. kind: Role
  293. name: ingress-nginx-admission
  294. subjects:
  295. - kind: ServiceAccount
  296. name: ingress-nginx-admission
  297. namespace: ingress-nginx
  298. ---
  299. apiVersion: rbac.authorization.k8s.io/v1
  300. kind: ClusterRoleBinding
  301. metadata:
  302. labels:
  303. app.kubernetes.io/instance: ingress-nginx
  304. app.kubernetes.io/name: ingress-nginx
  305. app.kubernetes.io/part-of: ingress-nginx
  306. app.kubernetes.io/version: 1.5.1
  307. name: ingress-nginx
  308. roleRef:
  309. apiGroup: rbac.authorization.k8s.io
  310. kind: ClusterRole
  311. name: ingress-nginx
  312. subjects:
  313. - kind: ServiceAccount
  314. name: ingress-nginx
  315. namespace: ingress-nginx
  316. ---
  317. apiVersion: rbac.authorization.k8s.io/v1
  318. kind: ClusterRoleBinding
  319. metadata:
  320. labels:
  321. app.kubernetes.io/component: admission-webhook
  322. app.kubernetes.io/instance: ingress-nginx
  323. app.kubernetes.io/name: ingress-nginx
  324. app.kubernetes.io/part-of: ingress-nginx
  325. app.kubernetes.io/version: 1.5.1
  326. name: ingress-nginx-admission
  327. roleRef:
  328. apiGroup: rbac.authorization.k8s.io
  329. kind: ClusterRole
  330. name: ingress-nginx-admission
  331. subjects:
  332. - kind: ServiceAccount
  333. name: ingress-nginx-admission
  334. namespace: ingress-nginx
  335. ---
  336. apiVersion: v1
  337. data:
  338. allow-snippet-annotations: "true"
  339. kind: ConfigMap
  340. metadata:
  341. labels:
  342. app.kubernetes.io/component: controller
  343. app.kubernetes.io/instance: ingress-nginx
  344. app.kubernetes.io/name: ingress-nginx
  345. app.kubernetes.io/part-of: ingress-nginx
  346. app.kubernetes.io/version: 1.5.1
  347. name: ingress-nginx-controller
  348. namespace: ingress-nginx
  349. ---
  350. apiVersion: v1
  351. kind: Service
  352. metadata:
  353. labels:
  354. app.kubernetes.io/component: controller
  355. app.kubernetes.io/instance: ingress-nginx
  356. app.kubernetes.io/name: ingress-nginx
  357. app.kubernetes.io/part-of: ingress-nginx
  358. app.kubernetes.io/version: 1.5.1
  359. name: ingress-nginx-controller
  360. namespace: ingress-nginx
  361. spec:
  362. ipFamilies:
  363. - IPv4
  364. ipFamilyPolicy: SingleStack
  365. ports:
  366. - appProtocol: http
  367. name: http
  368. port: 80
  369. protocol: TCP
  370. targetPort: http
  371. - appProtocol: https
  372. name: https
  373. port: 443
  374. protocol: TCP
  375. targetPort: https
  376. selector:
  377. app.kubernetes.io/component: controller
  378. app.kubernetes.io/instance: ingress-nginx
  379. app.kubernetes.io/name: ingress-nginx
  380. type: NodePort
  381. ---
  382. apiVersion: v1
  383. kind: Service
  384. metadata:
  385. labels:
  386. app.kubernetes.io/component: controller
  387. app.kubernetes.io/instance: ingress-nginx
  388. app.kubernetes.io/name: ingress-nginx
  389. app.kubernetes.io/part-of: ingress-nginx
  390. app.kubernetes.io/version: 1.5.1
  391. name: ingress-nginx-controller-admission
  392. namespace: ingress-nginx
  393. spec:
  394. ports:
  395. - appProtocol: https
  396. name: https-webhook
  397. port: 443
  398. targetPort: webhook
  399. selector:
  400. app.kubernetes.io/component: controller
  401. app.kubernetes.io/instance: ingress-nginx
  402. app.kubernetes.io/name: ingress-nginx
  403. type: ClusterIP
  404. ---
  405. apiVersion: apps/v1
  406. kind: Deployment
  407. metadata:
  408. labels:
  409. app.kubernetes.io/component: controller
  410. app.kubernetes.io/instance: ingress-nginx
  411. app.kubernetes.io/name: ingress-nginx
  412. app.kubernetes.io/part-of: ingress-nginx
  413. app.kubernetes.io/version: 1.5.1
  414. name: ingress-nginx-controller
  415. namespace: ingress-nginx
  416. spec:
  417. minReadySeconds: 0
  418. revisionHistoryLimit: 10
  419. selector:
  420. matchLabels:
  421. app.kubernetes.io/component: controller
  422. app.kubernetes.io/instance: ingress-nginx
  423. app.kubernetes.io/name: ingress-nginx
  424. template:
  425. metadata:
  426. labels:
  427. app.kubernetes.io/component: controller
  428. app.kubernetes.io/instance: ingress-nginx
  429. app.kubernetes.io/name: ingress-nginx
  430. spec:
  431. containers:
  432. - args:
  433. - /nginx-ingress-controller
  434. - --election-id=ingress-nginx-leader
  435. - --controller-class=k8s.io/ingress-nginx
  436. # 注意 ingress-class 设置很关键,后续创建 ingress 需要设置,必须和这里一致,否则可能访问404
  437. - --ingress-class=nginx
  438. - --configmap=$(POD_NAMESPACE)/ingress-nginx-controller
  439. - --validating-webhook=:8443
  440. - --validating-webhook-certificate=/usr/local/certificates/cert
  441. - --validating-webhook-key=/usr/local/certificates/key
  442. env:
  443. - name: POD_NAME
  444. valueFrom:
  445. fieldRef:
  446. fieldPath: metadata.name
  447. - name: POD_NAMESPACE
  448. valueFrom:
  449. fieldRef:
  450. fieldPath: metadata.namespace
  451. - name: LD_PRELOAD
  452. value: /usr/local/lib/libmimalloc.so
  453. image: dyrnq/ingress-nginx-controller:v1.5.1
  454. imagePullPolicy: IfNotPresent
  455. lifecycle:
  456. preStop:
  457. exec:
  458. command:
  459. - /wait-shutdown
  460. livenessProbe:
  461. failureThreshold: 5
  462. httpGet:
  463. path: /healthz
  464. port: 10254
  465. scheme: HTTP
  466. initialDelaySeconds: 10
  467. periodSeconds: 10
  468. successThreshold: 1
  469. timeoutSeconds: 1
  470. name: controller
  471. ports:
  472. - containerPort: 80
  473. name: http
  474. protocol: TCP
  475. - containerPort: 443
  476. name: https
  477. protocol: TCP
  478. - containerPort: 8443
  479. name: webhook
  480. protocol: TCP
  481. readinessProbe:
  482. failureThreshold: 3
  483. httpGet:
  484. path: /healthz
  485. port: 10254
  486. scheme: HTTP
  487. initialDelaySeconds: 10
  488. periodSeconds: 10
  489. successThreshold: 1
  490. timeoutSeconds: 1
  491. resources:
  492. requests:
  493. cpu: 100m
  494. memory: 90Mi
  495. securityContext:
  496. allowPrivilegeEscalation: true
  497. capabilities:
  498. add:
  499. - NET_BIND_SERVICE
  500. drop:
  501. - ALL
  502. runAsUser: 101
  503. volumeMounts:
  504. - mountPath: /usr/local/certificates/
  505. name: webhook-cert
  506. readOnly: true
  507. dnsPolicy: ClusterFirst
  508. nodeSelector:
  509. kubernetes.io/os: linux
  510. serviceAccountName: ingress-nginx
  511. terminationGracePeriodSeconds: 300
  512. volumes:
  513. - name: webhook-cert
  514. secret:
  515. secretName: ingress-nginx-admission
  516. ---
  517. apiVersion: batch/v1
  518. kind: Job
  519. metadata:
  520. labels:
  521. app.kubernetes.io/component: admission-webhook
  522. app.kubernetes.io/instance: ingress-nginx
  523. app.kubernetes.io/name: ingress-nginx
  524. app.kubernetes.io/part-of: ingress-nginx
  525. app.kubernetes.io/version: 1.5.1
  526. name: ingress-nginx-admission-create
  527. namespace: ingress-nginx
  528. spec:
  529. template:
  530. metadata:
  531. labels:
  532. app.kubernetes.io/component: admission-webhook
  533. app.kubernetes.io/instance: ingress-nginx
  534. app.kubernetes.io/name: ingress-nginx
  535. app.kubernetes.io/part-of: ingress-nginx
  536. app.kubernetes.io/version: 1.5.1
  537. name: ingress-nginx-admission-create
  538. spec:
  539. containers:
  540. - args:
  541. - create
  542. - --host=ingress-nginx-controller-admission,ingress-nginx-controller-admission.$(POD_NAMESPACE).svc
  543. - --namespace=$(POD_NAMESPACE)
  544. - --secret-name=ingress-nginx-admission
  545. env:
  546. - name: POD_NAMESPACE
  547. valueFrom:
  548. fieldRef:
  549. fieldPath: metadata.namespace
  550. image: dyrnq/kube-webhook-certgen:v20220916-gd32f8c343
  551. imagePullPolicy: IfNotPresent
  552. name: create
  553. securityContext:
  554. allowPrivilegeEscalation: false
  555. nodeSelector:
  556. kubernetes.io/os: linux
  557. restartPolicy: OnFailure
  558. securityContext:
  559. fsGroup: 2000
  560. runAsNonRoot: true
  561. runAsUser: 2000
  562. serviceAccountName: ingress-nginx-admission
  563. ---
  564. apiVersion: batch/v1
  565. kind: Job
  566. metadata:
  567. labels:
  568. app.kubernetes.io/component: admission-webhook
  569. app.kubernetes.io/instance: ingress-nginx
  570. app.kubernetes.io/name: ingress-nginx
  571. app.kubernetes.io/part-of: ingress-nginx
  572. app.kubernetes.io/version: 1.5.1
  573. name: ingress-nginx-admission-patch
  574. namespace: ingress-nginx
  575. spec:
  576. template:
  577. metadata:
  578. labels:
  579. app.kubernetes.io/component: admission-webhook
  580. app.kubernetes.io/instance: ingress-nginx
  581. app.kubernetes.io/name: ingress-nginx
  582. app.kubernetes.io/part-of: ingress-nginx
  583. app.kubernetes.io/version: 1.5.1
  584. name: ingress-nginx-admission-patch
  585. spec:
  586. containers:
  587. - args:
  588. - patch
  589. - --webhook-name=ingress-nginx-admission
  590. - --namespace=$(POD_NAMESPACE)
  591. - --patch-mutating=false
  592. - --secret-name=ingress-nginx-admission
  593. - --patch-failure-policy=Fail
  594. env:
  595. - name: POD_NAMESPACE
  596. valueFrom:
  597. fieldRef:
  598. fieldPath: metadata.namespace
  599. image: dyrnq/kube-webhook-certgen:v20220916-gd32f8c343
  600. imagePullPolicy: IfNotPresent
  601. name: patch
  602. securityContext:
  603. allowPrivilegeEscalation: false
  604. nodeSelector:
  605. kubernetes.io/os: linux
  606. restartPolicy: OnFailure
  607. securityContext:
  608. fsGroup: 2000
  609. runAsNonRoot: true
  610. runAsUser: 2000
  611. serviceAccountName: ingress-nginx-admission
  612. ---
  613. apiVersion: networking.k8s.io/v1
  614. kind: IngressClass
  615. metadata:
  616. labels:
  617. app.kubernetes.io/component: controller
  618. app.kubernetes.io/instance: ingress-nginx
  619. app.kubernetes.io/name: ingress-nginx
  620. app.kubernetes.io/part-of: ingress-nginx
  621. app.kubernetes.io/version: 1.5.1
  622. name: nginx
  623. spec:
  624. controller: k8s.io/ingress-nginx
  625. ---
  626. apiVersion: admissionregistration.k8s.io/v1
  627. kind: ValidatingWebhookConfiguration
  628. metadata:
  629. labels:
  630. app.kubernetes.io/component: admission-webhook
  631. app.kubernetes.io/instance: ingress-nginx
  632. app.kubernetes.io/name: ingress-nginx
  633. app.kubernetes.io/part-of: ingress-nginx
  634. app.kubernetes.io/version: 1.5.1
  635. name: ingress-nginx-admission
  636. webhooks:
  637. - admissionReviewVersions:
  638. - v1
  639. clientConfig:
  640. service:
  641. name: ingress-nginx-controller-admission
  642. namespace: ingress-nginx
  643. path: /networking/v1/ingresses
  644. failurePolicy: Fail
  645. matchPolicy: Equivalent
  646. name: validate.nginx.ingress.kubernetes.io
  647. rules:
  648. - apiGroups:
  649. - networking.k8s.io
  650. apiVersions:
  651. - v1
  652. operations:
  653. - CREATE
  654. - UPDATE
  655. resources:
  656. - ingresses
  657. sideEffects: None

执行安装

  1. # 执行安装
  2. [root@k8s-master ~]# kubectl apply -f deploy.yaml
  3. namespace/ingress-nginx created
  4. serviceaccount/ingress-nginx created
  5. serviceaccount/ingress-nginx-admission created
  6. role.rbac.authorization.k8s.io/ingress-nginx created
  7. role.rbac.authorization.k8s.io/ingress-nginx-admission created
  8. clusterrole.rbac.authorization.k8s.io/ingress-nginx created
  9. clusterrole.rbac.authorization.k8s.io/ingress-nginx-admission created
  10. rolebinding.rbac.authorization.k8s.io/ingress-nginx created
  11. rolebinding.rbac.authorization.k8s.io/ingress-nginx-admission created
  12. clusterrolebinding.rbac.authorization.k8s.io/ingress-nginx created
  13. clusterrolebinding.rbac.authorization.k8s.io/ingress-nginx-admission created
  14. configmap/ingress-nginx-controller created
  15. service/ingress-nginx-controller created
  16. service/ingress-nginx-controller-admission created
  17. deployment.apps/ingress-nginx-controller created
  18. job.batch/ingress-nginx-admission-create created
  19. job.batch/ingress-nginx-admission-patch created
  20. ingressclass.networking.k8s.io/nginx created
  21. validatingwebhookconfiguration.admissionregistration.k8s.io/ingress-nginx-admission created

检查部署是否成功

  1. [root@k8s-master ~]# kubectl get pod -n ingress-nginx
  2. NAME READY STATUS RESTARTS AGE
  3. ingress-nginx-admission-create-tbsl4 0/1 Completed 0 87s
  4. ingress-nginx-admission-patch-dn2c4 0/1 Completed 0 87s
  5. ingress-nginx-controller-6f66fd4bdb-gvfjl 1/1 Running 0 87s
  6. [root@k8s-master ~]#
  7. # 查看ingress-nginx-controller svc 注意: 80:30577/TCP,443:32667/TCP 此处 30577和32667 后续需要使用到
  8. [root@k8s-master ~]# kubectl get svc -n ingress-nginx
  9. NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
  10. ingress-nginx-controller NodePort 10.15.245.169 <none> 80:30577/TCP,443:32667/TCP 116s
  11. ingress-nginx-controller-admission ClusterIP 10.0.156.229 <none> 443/TCP 116s

下篇我们继续讲解Ingress实际使用

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/40829?site
推荐阅读
相关标签
  

闽ICP备14008679号