全网最简单的ingress-nginx安装部署

ingress-nginx安装的方式有两种,一种是通过helm安装,另一种是通过ingress官网的提供的yaml文件去安装,本次先以官网的提供的yaml文件文件去安装,后面在出个通过helm安装的教程。
ingress-nginx官网地址:https://kubernetes.github.io/ingress-nginx/deploy/官网上介绍了各种环境分别部署ingress-nginx的方法,本次安装咱们结合官网的安装基础上稍加修改

这是官网提供的直接通过YAML部署ingress-nginx,一般环境部署在内网情况下的话,这个yaml文件时没法下载的,yaml配置中的pod镜像也没法下载
全网最简单的ingress-nginx安装部署_第1张图片
#部署思路,咱们先把官网提供的部署yaml文件下载下来,在官网的yaml基础上结合咱们当前的环境进行适当的修改。

1.先下载官网的yaml配置文件

[root@k8s-master1 ingress]# wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.8.2/deploy/static/provider/cloud/deploy.yaml
--2023-11-29 12:01:44--  https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.8.2/deploy/static/provider/cloud/deploy.yaml
Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 185.199.108.133, 185.199.109.133, 185.199.110.133, ...
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|185.199.108.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 15721 (15K) [text/plain]
Saving to: ‘deploy.yaml’

100%[===============================================================================================================>] 15,721      --.-K/s   in 0.008s

2023-11-29 12:01:45 (1.90 MB/s) - ‘deploy.yaml’ saved [15721/15721]

2.编辑下载的deploy.yaml配置文件

#我创建一个独立的命名空间,将ingress部署在我指定的命名空间下。因为在向往环境中,一套K8S集群承载着多组业务集群,业务集群之间的业务隔离时通过命名空间去隔离的,在这我创建了一个test的命名空间,我计划将ingress部署在这个命名空间下
[root@k8s-master1 ~]# kubectl create ns test
namespace/test created
#修改咱们官网下载的deploy.yaml配置文件,我是修改了以下几个参数的配置

```bash
#第一处修改
  name: ingress-nginx
  namespace: ingress-nginx       #默认的namespace由默认的ingress-nginx改成了test,我指定的命名空间
#第二处修改
image: registry.k8s.io/ingress-nginx/controller:v1.8.2@sha256:74834d3d25b336b62cabeb8bf7f1d788706e2cf1cfd64022de4137ade8881ff2          #配置文件中默认的镜像地址需要科学上网才能下载下来,我们修改成阿里的镜像地址了image: registry.cn-hangzhou.aliyuncs.com/google_containers/nginx-ingress-controller:v1.8.1
imagePullPolicy: IfNotPresent
#第三处修改(ingress-nginx-controller的Service默认的type是LoadBalancer,我们修改成NodePort)
 selector:
    app.kubernetes.io/component: controller
    app.kubernetes.io/instance: ingress-nginx
    app.kubernetes.io/name: ingress-nginx
  type: LoadBalancer          #此处LoadBalancer修改成NodePort
  #第四处修改(ingress-nginx-controller的Deployment的配置中加上了replicas参数,方便服务的扩容
  minReadySeconds: 0
  revisionHistoryLimit: 10
  replicas: 2                 #这样安装就是启动了两个ingress服务
  #第五处修改(ingress-nginx-controller的Deployment的配置中加上了hostNetwork: true,设置hostNetwork为true的容器将能够访问宿主机上的任何网络接口和端口,并且可以通过宿主机的IP地址与其他计计算机进行通信。此外,容器也可以监听宿主机上的网络服务,而不仅仅是容器内部。)
  spec:
      hostNetwork: true
      containers:

安装服务

```bash
#直接通过咱们修改好的deployment的文件进行安装即可
[root@k8s-master1 ingress]# kubectl apply -f deploy.yaml
#查看服务的启动情况
[root@k8s-master1 ~]# kubectl get pods -n test -o wide
ingress-nginx-controller-74974c55bd-4sq47   1/1     Running            0               8m57s   192.168.21.100   k8s-node1                
ingress-nginx-controller-74974c55bd-p62cg   1/1     Running            0               8m57s   192.168.21.122   k8s-master3              
#访问ingress服务返回404则代表启动成功
[root@k8s-master1 ~]# curl http://192.168.21.100

404 Not Found

404 Not Found


nginx
[root@k8s-master1 ~]# curl http://192.168.21.122 404 Not Found

404 Not Found


nginx

在这里插入图片描述

你可能感兴趣的:(运维)