005_部署nginx-ingress

简介: 005_部署nginx-ingress

专注方向:

自动化流程服务

it咨询

it在线教学

doc

https://kubernetes.io/docs/concepts/services-networking/ingress/

介绍

Ingress exposes HTTP and HTTPS routes from outside the cluster to services within the cluster. Traffic routing is controlled by rules defined on the Ingress resource.


ingress 暴露了 从 外部 到 集群 内部服务 的 http/https 路由。 流量路由被 ingress 资源定义的规则所控制。

必要条件

You must have an Ingress controller to satisfy an Ingress. Only creating an Ingress resource has no effect.


You may need to deploy an Ingress controller such as ingress-nginx. You can choose from a number of Ingress controllers.


Ideally, all Ingress controllers should fit the reference specification. In reality, the various Ingress controllers operate slightly differently.


你必须拥有一个 ingress 控制器 去满足一个ingress。 仅仅创建一个 ingress 资源 是没有作用的。


你可能 需要部署一个 ingress 控制器, 比如 ingress-nginx。 你能选择一系列的ingress 控制器。


理想情况中,所有的 ingress 控制器 都必须满足 参考规范。 现实中,不同的 ingress 控制器的 操作 拥有 轻微的不同。

验证

配置访问 nginx-lb 服务

k8s\deploy\config\ingress\resource.yaml

配置访问 https openldap 服务

k8s\yamls\openldap\ingress-resource.yaml

参考

k8s\deploy\config\ingress

doc

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

获取镜像

host_ip=192.168.31.21
export  http_proxy="http://${host_ip}:7890"
export  https_proxy="http://${host_ip}:7890"
export  no_proxy="localhost,127.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,.svc,.cluster.local,my-cluster-endpoint.com"
imgs=(
    registry.k8s.io/ingress-nginx/controller:v1.5.1@sha256:4ba73c697770664c1e00e9f968de14e08f606ff961c76e5d7033a4a9c593c629
    registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20220916-gd32f8c343@sha256:39c5b2e3310dc4264d638ad28d9d1d96c4cbb2b2dcfb52368fe4e3c63f61e10f
)
function pull_img(){
    ctr -n k8s.io images pull ${1}
}
for i in ${imgs[@]}
do
    echo "pull: $i"
    pull_img $i &
done

部署

ingress controller

https://kubernetes.github.io/ingress-nginx/deploy/#quick-start


部署控制器,负责将 ingress resource 流量 冲定向 到 内部 service

# https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.5.1/deploy/static/provider/cloud/deploy.yaml
cd /git_proj/blogs/k8s/deploy/config/ingress
kubectl apply -f deploy.yaml
kubectl -n  ingress-nginx  get svc
# NAME                                 TYPE           CLUSTER-IP       EXTERNAL-IP     PORT(S)                      AGE
# ingress-nginx-controller             LoadBalancer   10.109.70.188    192.168.31.226   80:32141/TCP,443:31269/TCP   52m
# 访问 nginx controller
192.168.31.241

ingress resource

https://kubernetes.io/docs/concepts/services-networking/ingress/

ingress controller 可以部署在任意的 namespace。

ingress resource 定义的 ingress 对象必须和 被 路由的 服务 位于 相同的 namespace

cd /git_proj/blogs/k8s/deploy/config/ingress
kubectl apply -f resource.yaml
# 查询 ingress resource list
kubectl -n  nginx-lb get ingress
# NAME              CLASS   HOSTS   ADDRESS   PORTS   AGE
# minimal-ingress   nginx   *                 80      19s
# 查询某个 ingress resource 的详细状态
kubectl -n  nginx-lb describe ingress  minimal-ingress
# 
# 192.168.31.241
# ingress controller
http://ingress.dev.inner.ymk.com
# my test nginx
http://ingress.dev.inner.ymk.com/testpath
# dns test
nslookup ingress.dev.inner.ymk.com
# 服务器:  UnKnown
# Address:  192.168.31.234
# 名称:    ingress.dev.inner.ymk.com
# Address:  192.168.31.241


delpoy.yaml

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

resource.yaml

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  namespace: nginx-lb
  name: minimal-ingress
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  ingressClassName: nginx
  rules:
  - http:
      paths:
      - path: /testpath
        pathType: Prefix
        backend:
          service:
            name: nginx-lb
            port:
              number: 80
相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
16天前
|
应用服务中间件 网络安全 nginx
快速上手!使用Docker和Nginx部署Web服务的完美指南
快速上手!使用Docker和Nginx部署Web服务的完美指南
|
1月前
|
网络协议 应用服务中间件 Linux
在Redhat 9部署nginx服务
Nginx是一个高性能、开源的HTTP和反向代理服务器,以其异步非阻塞模型处理高并发,并具有轻量级、高可靠性、良好扩展性和热部署特性。在Redhat 9.2上安装nginx-1.24.0涉及安装依赖、下载解压、源码编译、配置环境变量及启动服务。安装步骤包括:yum安装依赖包,下载解压Nginx,运行configure脚本预编译,make && make install编译安装,然后赋权、配置环境变量,关闭防火墙和SELinux,最后启动Nginx并进行浏览器测试。
471 3
|
3月前
|
Kubernetes 应用服务中间件 nginx
百度搜索:蓝易云【使用Kubernetes部署Nginx应用教程】
现在,你已经成功在Kubernetes集群上部署了Nginx应用。通过访问Service的外部IP地址,你可以访问Nginx服务。
43 4
|
4月前
|
安全 应用服务中间件 nginx
百度搜索:蓝易云【使用Debian、Docker和Nginx部署Web应用教程】
这些是在Debian上使用Docker和Nginx部署Web应用的基本步骤。根据您的需求和具体环境,可能还需要进行其他配置和调整。请确保在进行任何与网络连接和安全相关的操作之前,详细了解您的网络环境和安全需求,并采取适当的安全措施。
47 0
|
1月前
|
前端开发 应用服务中间件 nginx
Nginx配置详解Docker部署Nginx使用Nginx部署vue前端项目
Nginx配置详解Docker部署Nginx使用Nginx部署vue前端项目
143 0
|
16天前
|
JavaScript 前端开发 应用服务中间件
angular引入包、路由权限配置、打包问题与nginx配置问题(简单部署)
angular引入包、路由权限配置、打包问题与nginx配置问题(简单部署)
24 0
|
1月前
|
JavaScript 应用服务中间件 nginx
【报错】nginx部署项目后Echarts折线图无法展示
在Vue3+TS+Arco项目中,打包后使用Nginx部署的Echarts折线图显示异常,报`Cannot read properties of undefined(reading 'setOption')`错误。问题源于在定义div时使用了Vue2的`$refs`语法,导致DOM元素无法正确初始化Echarts。解决方法有两种:1) 不推荐使用`document.getElementById`获取DOM并初始化Echarts;2) 推荐在Vue3中通过`ref`获取DOM,在`onMounted`中使用`echarts.init`并借助`nextTick`异步绘制数据。
|
4月前
|
应用服务中间件 Linux 网络安全
windows+linux环境下nginx部署环境
windows+linux环境下nginx部署环境
|
4天前
|
应用服务中间件 nginx
如何在树莓派部署Nginx并实现无公网ip远程访问内网制作的web网站
如何在树莓派部署Nginx并实现无公网ip远程访问内网制作的web网站
8 0
|
12天前
|
运维 Serverless 应用服务中间件
Serverless 应用引擎产品使用之在阿里云Serverless中函数计算FC nginx 部署上去之后放置静态页面如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
219 0