欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

部署Ingress

时间:2023-07-16

在k8s上部署服务的时候,我们经常通过svc暴露的端口提供对外访问,如果在k8s上部署的服务比较多的话,这样不仅不安全还会使用过多的端口资源,通过部署Ingress可以作为集群内部服务唯一的入口。
原理部分就不多说了,其原理和nginx差不多,接下来进行部署,ingress部署分为nginx官方的版本和kubernetes官方的版本,我这边是以部署k8s官方版本的ingress为主,部署ingress的yaml地址如下:

https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v0.64.0/deploy/static/provider/baremetal/deploy.yaml

其中改动部分如下:

1、 yaml中定义controller的deployment部分添加如下:

dnsPolicy: ClusterFirstWithHostNet
hostNetwork: true

2、 yaml中定义controller的svc部分改动如下:

type: NodePort 改为 type: ClusterIP

3、创建的时候可能出现pod无法正常启动,报错无法获取ingressClass,在yaml中添加如下部分

apiVersion: networking.k8s.io/v1beta1
kind: IngressClass
metadata:
labels:
helm.sh/chart: ingress-nginx-3.30.0
app.kubernetes.io/name: ingress-nginx
app.kubernetes.io/instance: ingress-nginx
app.kubernetes.io/version: 0.46.0
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: controller
name: nginx
namespace: ingress-nginx
spec:
controller: k8s.io/ingress-nginx

部署完查看下pod的状态,并curl对应的地址看看是否正常
到此ingress部署完毕。

k8s官方介绍ingress参考地址如下:

https://kubernetes.io/zh/docs/concepts/services-networking/ingress/#ingress- %E6%98%AF%E4%BB%80%E4%B9%88

k8s官方部署的ingress地址如下:

https://kubernetes.github.io/ingress-nginx/

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。