DaemonSet方式部署nginx-ingress
前言
nginx-ingress是k8s官方维护的一个Ingress Controller,具体使用,官方有详细的文档:https://kubernetes.github.io/ingress-nginx/deploy/
直接按照官方文档进行安装,一般都会失败,本文将帮助你成功安装他。
官方的安装方式
官方文档提供了两种安装方式,下面是直接拷贝过来的脚本
- Helm
helm upgrade --install ingress-nginx ingress-nginx \
--repo https://kubernetes.github.io/ingress-nginx \
--namespace ingress-nginx --create-namespace
- YAML Manifest
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.5.1/deploy/static/provider/cloud/deploy.yaml
如果不FQ,这两种方式均会失败,又或许你个人电脑可以各种方式FQ,但公司的k8s集群环境可不允许你使用FQ工具。
解决镜像拉取失败
- 使用别人上传好的镜像替换
可以从dockerhub仓库先拉取别人上传的镜像,下载官方的YAML Manifest文件,修改对应的镜像。当然这种不安全。 - FQ拉取镜像
略 - 拉取镜像至私有仓库
将镜像上传到私有仓库,然后进行方式1的操作,如果你没有FQ的环境,推荐使用这个开源项目拉取镜像
https://github.com/anjia0532/gcr.io_mirror
DaemonSet 方式部署
通过上面的方式,虽然麻烦,但是一定可以解决你的问题,但官方的YAML Manifest默认是以Deployment方式部署nginx-controller,然后通过Loadbalancer类型的Service暴露出去,它将一直处于Pendding状态,这时需要借助开源的MetalLB来直接可用的EXTERNAL-IP,这里不再继续折腾了,有兴趣的可以按照官方的文档去解决:https://kubernetes.github.io/ingress-nginx/deploy/baremetal/
网上搜到的
在网上找了一些如果以DaemonSet方式部署nginx-ingress的文字,有能用的,但是很不官方,也不优雅,基本就是下载YAML Manifest文件,进行手动修改,然后kubectl apply -f deploy.yaml
我推荐的
其实是官方推荐的,官方文档中关于YAML Manifest方式部署方式下面有段提示:
The YAML manifest in the command above was generated with helm template,
so you will end up with almost the same resources as if you had used Helm to install the controller.
上述命令中的 YAML 清单是使用 helm template 生成的,因此您最终将获得与使用 Helm 安装控制器几乎相同的资源。
因为我的集群环境中是不能FQ的,直接通过helm安装是不行了,一般来说ingress很多是采用DaemonSet方式部署,官方的helm chatrs想必可以通过参数控制。
本地安装
helm:安装Helm如果你本地环境可以FQ,则本地添加helm库
本文为Gui.H原创文章,喜欢请关注公众号 dotnet之美
helm repo add https://kubernetes.github.io/ingress-nginx
- 如果你不能FQ
想办法将这个下载这个charts
[ingress-nginx/charts/ingress-nginx at main · kubernetes/ingress-nginx (github.com)](https://github.com/kubernetes/ingress-nginx/tree/main/charts/ingress-nginx)
- 通过
helm template生成Manifest清单
helm template --set controller.kind=DaemonSet --set controller.hostPort.enabled=true --set controller.service.enabled=false --namespace ingress-nginx ingress ingress-nginx/ingress-nginx > ./deploy.yaml
- 更换
deploy.yaml清单中的镜像
在集群中执行
kubectl apply -f deploy.yaml
结语
创作不易,如果本文对您有帮助,请动动手点个赞吧。
DaemonSet方式部署nginx-ingress的更多相关文章
- ingress高可用--使用DaemonSet方式部署ingress-nginx
前言 为了配置kubernetes中的ingress的高可用,对于kubernetes集群以外只暴露一个访问入口,需要使用keepalived排除单点问题.需要使用daemonset方式将ingres ...
- 见异思迁:K8s 部署 Nginx Ingress Controller 之 kubernetes/ingress-nginx
前天才发现,区区一个 nginx ingress controller 竟然2个不同的实现.一个叫 kubernetes/ingress-nginx ,是由 kubernetes 社区维护的,对应的容 ...
- Kubernetes 部署 Nginx Ingress Controller 之 nginxinc/kubernetes-ingress
更新:这里用的是 nginxinc/kubernetes-ingress ,还有个 kubernetes/ingress-nginx ,它们的区别见 Differences Between nginx ...
- Nginx Ingress on TKE 部署最佳实践
概述 开源的 Ingress Controller 的实现使用量最大的莫过于 Nginx Ingress 了,功能强大且性能极高.Nginx Ingress 有多种部署方式,本文将介绍 Nginx I ...
- 手把手教你使用 Nginx Ingress 实现金丝雀发布
概述 本文将介绍如何使用 Nginx Ingress 实现金丝雀发布,从使用场景分析,到用法详解,再到上手实践. 前提条件 集群中需要部署 Nginx Ingress 作为 Ingress Contr ...
- kubernetes nginx ingress controller部署
Kubernetes nginx ingress controller部署 1.下载kubernetes nginx的yaml文件 Wget https://raw.githubusercontent ...
- Kubernetes 服务入口管理与 Nginx Ingress Controller
Kubernetes 具有强大的副本,动态扩容等特性,每一次 Pod 的变化 IP 地址都会发生变化,所以 Kubernetes 引进了 Service 的概念.Kubernetes 中使用 Serv ...
- 实操教程丨如何在K8S集群中部署Traefik Ingress Controller
注:本文使用的Traefik为1.x的版本 在生产环境中,我们常常需要控制来自互联网的外部进入集群中,而这恰巧是Ingress的职责. Ingress的主要目的是将HTTP和HTTPS从集群外部暴露给 ...
- [经验交流] Kubernetes Nginx Ingress 安装与使用
Ingress 介绍 Kubernetes 上部署的微服务运行在它的私有网络中, 通过Pod实例的hostPort或Service实例的NodePort可以暴露到主机端口上,便于用户访问.但这样的方法 ...
- kubernetes nginx ingress 使用记录
前言 ingress是一种可以暴露k8s集群内部service的方式,用户编辑配置文件定义一个ingress资源即可实现外部网络访问内网service. ingress controller是来管理所 ...
随机推荐
- springboot如何处理矩阵参数类型的url
矩阵参数类型的url如何处理 首先要开启这个功能 在webconfig类中创建Webconfigurer类 并且设置 urlPathHelper类中的removeSemicolonContent 为f ...
- 还在用双层for循环吗?太慢了
前情提要 我们在开发中经常碰到这样的场景,查出两个 list 集合数据,需要根据他们相同的某个属性为连接点,进行聚合.但是平时我们使用的时候关注过性能吗?下面让我们一起来看看它的表现如何. 来个例子 ...
- Java 19 新功能介绍
点赞再看,动力无限. 微信搜「程序猿阿朗 」. 本文 Github.com/niumoo/JavaNotes 和 未读代码博客 已经收录,有很多知识点和系列文章. Java 19 在2022 年 9 ...
- h5 websocket 断开重新连接
最近的项目中使用ws 长连接来接收和发送消息, 直接上代码 import * as SockJS from "sockjs-client"; import Stomp from & ...
- Vue3 企业级优雅实战 - 组件库框架 - 6 搭建example环境
该系列已更新文章: 分享一个实用的 vite + vue3 组件库脚手架工具,提升开发效率 开箱即用 yyg-cli 脚手架:快速创建 vue3 组件库和vue3 全家桶项目 Vue3 企业级优雅实战 ...
- C#.NET实现二分查找
二分搜索法 定义 二分法查找,也称为折半法,是一种在有序数组中查找特定元素的搜索算法. 适用范围 当数据量很大并且有序时,适宜采用该方法. 基本思想 假设数据是按升序排序的,对于给定值key,从序列的 ...
- 【OpenStack云平台】openstack命令行管理之环境变量设置
上传镜像(glance组件) glance 可以使用以下参数: ps:这些参数不是100%都需要的我们在上传镜像更加我们需求选择相对应的参数就好了 –id <IMAGE_ID> #镜像的I ...
- Spring Security(1)
您好,我是湘王,这是我的博客园,欢迎您来,欢迎您再来- 虽然说互联网是一个非常开发.几乎没有边界的信息大海,但说起来有点奇怪的是,每个稍微有点规模的互联网应用都有自己的权限系统,而权限的本质却是是封闭 ...
- Vscode连接gitee远程仓库
Git初始化项目 1. Git的基础配置 Git的安装配置 下载地址为:http://git-scm.com/downloads 安装完第一步要做的是,设置你的用户名和邮件地址. git config ...
- Android网络请求(终) 网络请求框架Retrofit
Android网络请求(终) 网络请求框架Retrofit Retrofit底层是由OkHttp封装的,Retrofit对于注解的使用十分频繁,所以不了解注解的同学们可以去查查资料什么的. 这里有一个 ...