首页 > 系统相关 >k8s安装Ingress-Nginx

k8s安装Ingress-Nginx

时间:2023-12-13 15:47:12浏览次数:30  
标签:Ingress io created admission ingress Nginx nginx k8s

目前,DHorse(https://gitee.com/i512team/dhorse)只支持Ingress-nginx的Ingress实现,下面介绍Ingress-nginx的安装过程。

下载安装文件

首先,需要匹配Ingress-nginx版本和kubernetes版本。
https://github.com/kubernetes/ingress-nginx可以找到,如下图所示:

笔者用的k8s版本是v1.21.2,需要安装Ingress-nginx的v1.3.1版本,下载如下文件:

wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.3.1/deploy/static/provider/cloud/deploy.yaml

替换镜像地址

查看该文件用到了哪些镜像:

[root@centos05 deployment]# cat deploy.yaml | grep image
        image: registry.k8s.io/ingress-nginx/controller:v1.3.1@sha256:54f7fe2c6c5a9db9a0ebf1131797109bb7a4d91f56b9b362bde2abd237dd1974
        imagePullPolicy: IfNotPresent
        image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.3.0@sha256:549e71a6ca248c5abd51cdb73dbc3083df62cf92ed5e6147c780e30f7e007a47
        imagePullPolicy: IfNotPresent
        image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.3.0@sha256:549e71a6ca248c5abd51cdb73dbc3083df62cf92ed5e6147c780e30f7e007a47
        imagePullPolicy: IfNotPresent

可以看出,所用到的镜像不在docker hub中,在registry.k8s.io中,由于国内的网络问题,拉取不到该仓库的镜像。
幸好https://dockerproxy.com/docs提供了镜像代理,按照文档的说明,我们需要把registry.k8s.io地址改为k8s.dockerproxy.com即可,替换以后的内容为:

registry.k8s.io/ingress-nginx/controller:v1.3.1@sha256:54f7fe2c6c5a9db9a0ebf1131797109bb7a4d91f56b9b362bde2abd237dd1974 ->
k8s.dockerproxy.com/ingress-nginx/controller:v1.3.1@sha256:54f7fe2c6c5a9db9a0ebf1131797109bb7a4d91f56b9b362bde2abd237dd1974
registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.3.0@sha256:549e71a6ca248c5abd51cdb73dbc3083df62cf92ed5e6147c780e30f7e007a47 ->
k8s.dockerproxy.com/ingress-nginx/kube-webhook-certgen:v1.3.0@sha256:549e71a6ca248c5abd51cdb73dbc3083df62cf92ed5e6147c780e30f7e007a47

安装

保存以后,部署ingress-nginx:

[root@centos05 deployment]# kubectl apply -f deploy.yaml 
namespace/ingress-nginx created
serviceaccount/ingress-nginx created
serviceaccount/ingress-nginx-admission created
role.rbac.authorization.k8s.io/ingress-nginx created
role.rbac.authorization.k8s.io/ingress-nginx-admission created
clusterrole.rbac.authorization.k8s.io/ingress-nginx created
clusterrole.rbac.authorization.k8s.io/ingress-nginx-admission created
rolebinding.rbac.authorization.k8s.io/ingress-nginx created
rolebinding.rbac.authorization.k8s.io/ingress-nginx-admission created
clusterrolebinding.rbac.authorization.k8s.io/ingress-nginx created
clusterrolebinding.rbac.authorization.k8s.io/ingress-nginx-admission created
configmap/ingress-nginx-controller created
service/ingress-nginx-controller created
service/ingress-nginx-controller-admission created
deployment.apps/ingress-nginx-controller created
job.batch/ingress-nginx-admission-create created
job.batch/ingress-nginx-admission-patch created
ingressclass.networking.k8s.io/nginx created
validatingwebhookconfiguration.admissionregistration.k8s.io/ingress-nginx-admission created

查看结果:

[root@centos05 deployment]# kubectl get pods -n ingress-nginx -o wide
NAME                                        READY   STATUS      RESTARTS   AGE   IP           NODE       NOMINATED NODE   READINESS GATES
ingress-nginx-admission-create-fq2kq        0/1     Completed   0          11s   10.32.1.89   centos06   <none>           <none>
ingress-nginx-admission-patch-fkphb         0/1     Completed   1          11s   10.32.1.90   centos06   <none>           <none>
ingress-nginx-controller-5c79d9494c-rh5rn   0/1     Running     0          11s   10.32.1.91   centos06   <none>           <none>

访问ingress-nginx-controller的ip,如下:

[root@centos05 deployment]# curl http://10.32.1.91
<html>
<head><title>404 Not Found</title></head>
<body>
<center><h1>404 Not Found</h1></center>
<hr><center>nginx</center>
</body>
</html>

验证Ingress

假如,我们有一个名为hello-gradle的应用,并且有一个/hello的服务接口,并且绑定了名为www.hello-gradle.com的域名,如下图所示:

部署完该应用以后,在集群的任意节点配置host如下:

[root@centos06 deployment]# vim /etc/hosts
10.244.0.13 www.hello-gradle.com

然后通过域名访问/hello服务,如下:

[root@centos05 deployment]# curl http://www.hello-gradle.com/hello
Hello!

标签:Ingress,io,created,admission,ingress,Nginx,nginx,k8s
From: https://www.cnblogs.com/tiandizhiguai/p/17899175.html

相关文章

  • k8s数据持久化
    前面的学习,我们已经基本完成了在k8s中部署一个web服务,运行pod、创建service、创建ingress对外提供域名的七层代理。下一个环境就得去关注应用部署后的数据存储问题,容器化如何管理,k8s化如何管理。1.什么是Volume1.容器内部的存储数据,再容器生命周期中是很短暂的,伴随容器的销毁......
  • k8s配置文件管理
    1.为什么要用configMapConfigMap是一种用于存储应用所需配置信息的资源类型,用于保存配置数据的键值对,可以用来保存单个属性,也可以用来保存配置文件。通过ConfigMap可以方便的做到配置解耦,使得不同环境有不同的配置。考虑真实的使用场景,像数据库这类中间件,是作为公共资源,为多个......
  • k8s资源清单
    k8s资源清单再安装好k8s之后,本章开始学习k8s的具体使用玩法。重点介绍如何使用Workload管理业务应用的生命周期,实现服务不中断的滚动更新,通过服务发现和集群内负载均衡来实现集群内部的服务间访问,并通过ingress实现外部使用域名访问集群内部的服务。学习过程中会逐步对Djang......
  • k8s介绍
    k8s容器编排系统k8S是谷歌几十年来研发的一套系统,更新了运维领域的玩法。内容很多,先快速练习玩法,知道是什么就行。具体【为什么】再花时间慢慢学吧!0.参考资料1.k8s能干什么https://kubernetes.io/zh-cn/docs/concepts/overview/#why-you-need-kubernetes-and-what-can-i......
  • 教你使用Prometheus-Operator进行K8s集群监控
    本文分享自华为云社区《Promethues-operator入门使用指导》,作者:可以交个朋友。一、背景在非operator配置的普罗中我们监控k8s集群都是通过配置configmap进行服务发现和指标拉取。切换到prometheus-operator难免会有些使用问题。不少用户已经习惯底层配置自动发现的方式。当过渡......
  • prometheus监控k8s集群node节点/linux操作系统
    prometheus监控k8s集群node节点/linux操作系统 一、监控linux操作系统1、下载二进制包wgethttps://github.com/prometheus/node_exporter/releases/download/v1.7.0/node_exporter-1.7.0.linux-amd64.tar.gz2、解压,移动至/opt并做软连接tarzxfnode_expo......
  • Nginx
    简介Nginx(”enginex”)是一个高性能的HTTP和反向代理服务器,特点是占有内存少,并发能力强,事实上Ngfinx的并发能力确实在同类型的网页服务器中表现较好。Nginx专为性能优化而开发,性能是其最重要的考量,实现上非常注重效率,能经受高负载的考验,有报告表明能支持高达50000个并发连接数......
  • Nginx-server-文件下载配置
    server{ listen8001; server_namelocalhost; #错误日志:在location块中添加错误日志记录,以便于问题排查。 error_log/var/log/nginx/8001_down_error.log; #通过valid_referers指令来限制允许访问资源的来源。 valid_referersnoneblockedserver_nameslocalh......
  • k8s_kind-创建pod-拉取私有仓库镜像
    kind本地配置查看您创建的所有集群,您可以使用该kindgetclusters命令在kubernetes内使用私有镜像仓库之前,我们需要先有一个私有镜像仓库,并保证这个仓库是可用的检查私有镜像仓库是否可用kindcreatecluster--namedatapre##以将本机镜像导入到Kind集群中去......
  • 深入了解RPM包管理与Nginx源码包管理
    在Linux系统中,RPM(RedHatPackageManager)是一种流行的软件包管理工具,用于安装、查询和卸载软件包。同时,在编译和安装Nginx等软件时,源码包管理也是一个重要的方面。本文将详细介绍RPM包管理的基本操作以及Nginx源码包管理的方法。RPM包管理1.安装RPM包使用命令可以轻松安装RPM......