首页 > 系统相关 >Ingress Nginx Controller 使用

Ingress Nginx Controller 使用

时间:2023-06-26 23:32:37浏览次数:42  
标签:Ingress nginx master01 ingress Nginx Controller 26 k8s root

1.Ingress Nginx Controller 安装

helm安装

[root@k8s-master01 26]# wget https://get.helm.sh/helm-v3.6.3-linux-amd64.tar.gz
[root@k8s-master01 26]# tar -zxvf helm-v3.0.0-linux-amd64.tar.gz
[root@k8s-master01 26]# mv linux-amd64/helm /usr/local/bin/helm
[root@k8s-master01 26]# helm version
version.BuildInfo{Version:"v3.8.2", GitCommit:"6e3701edea09e5d55a8ca2aae03a68917630e91b", GitTreeState:"clean", GoVersion:"go1.17.5"}

下载ingress-controller控制包

[root@k8s-master01 26]# helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
[root@k8s-master01 26]# helm repo update
[root@k8s-master01 26]# helm pull ingress-nginx/ingress-nginx --version 4.0.1

更改对应的配置

[root@k8s-master01 26]# tar xf ingress-nginx-4.0.1.tgz
[root@k8s-master01 26]# cd ingress-nginx
vim values.yaml
#########
需要修改的位置
a) Controller 和 admissionWebhook 的镜像地址,需要将公网镜像同步至公司内网镜
像仓库
b) 镜像的 digest 值注释
c) hostNetwork 设置为 true
d) dnsPolicy 设置为 ClusterFirstWithHostNet
e) NodeSelector 添加 ingress: "true"部署至指定节点
f) 类型更改为 kind: DaemonSet
g) 讲 ingress nginx 设置为默认的 ingressClass

部署 ingress,给需要部署 ingress 的节点上打标签
[root@k8s-master01 26]# kubectl label node k8s-node01 ingress=true
[root@k8s-master01 26]# kubectl create ns ingress-nginx
[root@k8s-master01 26]# helm install ingress-nginx -n ingress-nginx .


ingress-nginx的进阶

  1. ingress-nginx的简单使用
[root@k8s-master01 26]# kubectl create deployment web --image=nginx:1.23
deployment.apps/web created
[root@k8s-master01 26]# kubectl expose deployment web --port 80
service/web exposed
[root@k8s-master01 26]# kubectl get po -A
NAMESPACE       NAME                                     READY   STATUS    RESTARTS      AGE
default         nginx1-d6667489c-fcdkg                   1/1     Running   0             93m
default         web-75dbdc8458-vnvpk                     1/1     Running   0             30s
ingress-nginx   ingress-nginx-controller-548nq           1/1     Running   3 (61m ago)   119m
kube-system     calico-kube-controllers-d4bfdcb9-srq4h   1/1     Running   0             152m
kube-system     calico-node-l58nj                        1/1     Running   0             152m
kube-system     calico-node-rtzj5                        1/1     Running   0             152m
kube-system     coredns-6d8c4cb4d-5d9sw                  1/1     Running   0             3h50m
kube-system     coredns-6d8c4cb4d-r68nm                  1/1     Running   0             3h50m
kube-system     etcd-k8s-master01                        1/1     Running   0             3h51m
kube-system     kube-apiserver-k8s-master01              1/1     Running   1 (63m ago)   3h51m
kube-system     kube-controller-manager-k8s-master01     1/1     Running   9 (64m ago)   3h51m
kube-system     kube-proxy-bzkbv                         1/1     Running   0             3h50m
kube-system     kube-proxy-jlhps                         1/1     Running   0             152m
kube-system     kube-scheduler-k8s-master01              1/1     Running   9 (64m ago)   3h51m
study-ingress   nginx-5b78fb99bc-vtbhl                   1/1     Running   0             110m

#创建ingress规则
[root@k8s-master01 26]# cat web-ingress.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: nginx-ingress
spec:
  rules:
  - host: web.example.com
    http:
      paths:
      - backend:
          service:
            name: web
            port:
              number: 80
        path: /
        pathType: ImplementationSpecific

kubectl apply -f web-ingress.yaml
备注:ingress的控制器部署在node01节点,访问的时候需要在node01的/etc/hosts文件
里面配置相关内容
[root@k8s-node01 ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.215.15 k8s-node01 myapp.example.com nginx.test-788.com web.example.com

[root@k8s-node01 ~]# curl -I web.example.com
HTTP/1.1 200 OK
Date: Mon, 26 Jun 2023 14:34:33 GMT
Content-Type: text/html
Content-Length: 615
Connection: keep-alive
Last-Modified: Tue, 28 Mar 2023 15:01:54 GMT
ETag: "64230162-267"
Accept-Ranges: bytes


  1. Ingress Nginx 域名重定向 Redirect

以上面的web服务举例,修改ingress的访问规

[root@k8s-master01 26]# cat  web-ingress.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: nginx-ingress
  annotations:
    kubernetes.io/ingress.class: "nginx"
    nginx.ingress.kubernetes.io/permanent-redirect: "https://www.baidu.com"
spec:
  rules:
  - host: web.example.com
    http:
      paths:
      - backend:
          service:
            name: web
            port:
              number: 80
        path: /
        pathType: ImplementationSpecific

执行kubectl apply -f web-ingress.yaml ,在windowns电脑的/etc/hosts配置相关的数据如图

Ingress Nginx Controller 使用_nginx

浏览器打开就直接跳到百度了

标签:Ingress,nginx,master01,ingress,Nginx,Controller,26,k8s,root
From: https://blog.51cto.com/u_14529165/6558882

相关文章

  • 使用 Debian、Docker 和 Nginx 部署 Web 应用
    前言本文将介绍基于Debian的系统上使用Docker和Nginx进行Web应用部署的过程。着重介绍了Debian、Docker和Nginx的安装和配置。第1步:更新和升级Debian系统通过SSH连接到服务器。更新软件包列表:sudoaptupdate升级已安装的软件包:sudoaptupgrade第2步:......
  • Nginx 6个例子理解proxy_pass和rewrite的用法
    Nginx6个例子理解proxy_pass和rewrite的用法一、rewrite描述rewrite可以重写path,也可以重写整个url(如果存在协议,默认返回302临时跳转,即使加了last和break也无效)。rewrite共有4种flag:last、break、redirect(302)、permanent(301)。当location中存在flag时,不会再执行之后的......
  • 基于docker部署nginx
    基于docker部署nginx1.拉取nginx镜像文件dockerpullnginx2.创建nginx本地映射文件mkdir-p/root/docker/nginx/logsmkdir-p/root/docker/nginx/conf.dtouchpinter.confvipinter.conf把pinter改为docker中的别名3.启动nginx服务dockerrun-d-p80:80--networkmtx-v/ro......
  • nginx RTMP推拉流,多个音频流合并。
    使用nginxRTMP(nginx的一个插件模块,具体的网上搜一下)做一个简易的多人音频通话流媒体服务器,多个端通话时,客户端无法处理其他端发过来的音频流,比如A、B、C三个端通话,A设备同时持有B、C的音频流,这样对设备端非常的不友好。这时候就需要用到一个强大的工具,FFMPEG,安装网上很多,搜下就......
  • 如何将TLS的安全证书和密钥保存到k8s的secret中?以及在ingress中使用secret中的证书?
    如果要ingress的域名增加TLS的证书,该怎么办? 那如何将证书和密钥保存到k8s的secret中呢? 如果使用自签名的证书,使用下面的命令创建密钥和证书[root@nccztsjb-node-23secrets]#opensslreq-x509\>-newkey\>rsa:4096\>-nodes\>......
  • nginx 1.25.1 发布
    nginx1.25.1有一个很不错的特性,就是支持了http2指令,以前这个指令主要是也listen配置使用的(ssl+http2场景)独立指令之后就有了很方便的功能了,比如有些业务希望使用http0.9-1.1协议,有些需要使用http2,当然目前也是支持了http3的,可以做到分离,以前版本存在一个问题就是开启了之......
  • vue-router之hash与history,以及nginx配置
    本篇讲解前端项目的路由模式(以vue-router为例),以及history模式下的项目部署问题。vue-router的路由模式可以通过指定mode属性值控制,可选值:"hash"、"history"、"abstract",默认:"hash"(浏览器环境),"abstract"(Node.js环境)constrouter=newVueRouter({mode:......
  • Nginx配置max_fails fail_timeout 不起作用 - stub_status - 调试 nginx --with-deb
    0.stub_statusconfigurearguments:--prefix=/usr/local/tengine--with-http_realip_module--with-http_gzip_static_module--with-pcre--with-http_stub_status_module--with-http_ssl_module--add-module=/opt/nginx-goodies-nginx-sticky-module-ng[root@slave1con......
  • Nginx-PHP优化设置 + lnmp调优的关键影响因素 + php-fpm + nginx返回码 + tcp调优 +
    最大文件描述符Linux内核本身有文件描述符最大值的**,你可以根据需要更改:系统最大打开文件描述符数:/proc/sys/fs/file-max临时性设置:echo1000000>/proc/sys/fs/file-max永久设置:修改/etc/sysctl.conf文件,增加fs.file-max=10000002、用户级设置vi/etc/security/limits.confhttp......
  • elk 入门 - 分析nginx日志 + json格式 + 有调试的意识 + elk7.2.0
    1.本次采用的一台主机,将所有的软件安装一台上进行测试工作。2.安装部署:https://blog.51cto.com/hwg1227/22999953.简单调试输出rubydebuginput{file{path=>"/usr/local/log_test/*/*/*.log"start_position=>"beginning"}}output{e......