返回顶部
首页 > 资讯 > 服务器 >k8s部署ingress-nginx的方法步骤
  • 808
分享到

k8s部署ingress-nginx的方法步骤

2024-04-02 19:04:59 808人浏览 安东尼
摘要

目录前言一、部署配置Ingress二、使用https前言 k8s集群服务部署好之后,需要对外提域名访问,这时候就需要ingress-Nginx了,今天来给大家分享一下 一、部署配

前言

k8s集群服务部署好之后,需要对外提域名访问,这时候就需要ingress-Nginx了,今天来给大家分享一下

一、部署配置Ingress

1、获取配置文件


#文件已下载到本地
Https://GitHub.com/kubernetes/ingress-nginx/tree/nginx-0.20.0/deploy

2、准备镜像


unzip ingress-nginx-nginx-0.20.0.zip
cd ingress-nginx-nginx-0.20.0/deploy/
vim mandatory.yaml     #其他文件的集合
#编辑mandatory.yaml文件,将defaultbackend镜像地址改成阿里云的镜像地址(如下图)
image: reGIStry.cn-hangzhou.aliyuncs.com/allinpay/defaultbackend-amd64:v1.5

在这里插入图片描述

3、安装


kubectl apply -f mandatory.yaml

在这里插入图片描述


#稍等片刻,使用下列命令查询
kubectl get namespace
kubectl get pods -n ingress-nginx

在这里插入图片描述

4、创建后端pod和service (pod-B、service-B)


vim deploy-demo.yaml
apiVersion: v1
kind: Service
metadata:
  name: myapp
  namespace: default
spec:
  selector:
    app: myapp
    release: canary
  ports:
  - name: http
    targetPort: 80
    port: 80
---  
apiVersion: apps/v1
kind: Deployment
metadata:
  name: myapp-deploy
  namespace: default
spec:
  replicas: 3
  selector:
    matchLabels:
      app: myapp
      release: canary
  template:
    metadata:
      labels:
        app: myapp
        release: canary
    spec:
      containers:
      - name: myapp
        image: ikubernetes/myapp:v2
        ports:
        - name: http
          containerPort: 80

#应用配置
kubectl apply -f deploy-demo.yaml
#查看
kubectl get pods

在这里插入图片描述

5、创建service-A


vim service-nodeport.yaml
apiVersion: v1
kind: Service
metadata:
  name: ingress-nginx
  namespace: ingress-nginx
  labels:
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/part-of: ingress-nginx
spec:
  type: NodePort
  ports:
  - name: http
    port: 80
    targetPort: 80
    protocol: tcp
    nodePort: 30080
  - name: https
    port: 443
    targetPort: 443
    protocol: TCP
    nodePort: 30443
  selector:
    app.kubernetes.io/name: ingress-nginx
app.kubernetes.io/part-of: ingress-nginx

#应用配置
kubectl apply -f service-nodeport.yaml

#查看
kubectl get svc -n ingress-nginx

在这里插入图片描述

在外部浏览器中中访问:ip:30080

在这里插入图片描述

此时报错的原因是因为没有生成ingress-controller关联到service-B的ingress规则;

6、定义ingress规则

定义ingress规则,此间规则会自动注入到ingress-controller(pod)的nginx.conf中;
ingress-controller是直接关联到service-B的,但是中间由ingress来生成各种规则;


vim ingress-myapp.yaml
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ingress-myapp
  namespace: default
  annotations:
    kubernetes.io/ingress.class: "nginx"
spec:
  rules:
  - host: myapp.magedu.com
    http:
      paths:
      - path:
        backend:
          serviceName: myapp
          servicePort: 80

此时ingress-controller的nginx.conf中会自动生成一个server段的配置,也就是一个nginx的虚拟主机的字段,还包括upstream配置等;
upstream自动代理到后端pod(pod-B),这些都是自动生成,所以就实现了自动生成配置,自动更改配置等;
只需要改此yaml文件即可;


#应用配置
kubectl apply -f ingress-myapp.yaml

在这里插入图片描述

在外部主机上配置好host文件

在这里插入图片描述

然后在浏览器中再访问,发现已经可以访问到后端pod了

在这里插入图片描述

二、使用https

1、创建k8s证书(要注意和后端的pod使用相同的namespace)


kubectl -n default  create secret tls ingress-test --key /home/Centos/cert/cash432.key --cert /home/centos/cert/cash432.crt

2、创建ingress规则

注意namespace的相同性,要不然证书无法生效


vim ingress-myapp-cash432.yaml
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ingress-myapp
  namespace: default
  annotations:
    kubernetes.io/ingress.class: "nginx"
    kubernetes.io/secure-backends: "true"
    kubernetes.io/ssl-passthrough: "true"
spec:
  tls:
  - hosts:
    - myapp.cash432.xyz
    secretName: ingress-test
  rules:
  - host: myapp.cash432.xyz
    http:
      paths:
      - path:
        backend:
          serviceName: myapp
          servicePort: 80

#应用配置
kubectl apply -f ingress-myapp-cash432.yaml

浏览器访问

在这里插入图片描述

到此这篇关于k8s部署ingress-nginx的方法步骤的文章就介绍到这了,更多相关k8s部署ingress-nginx内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: k8s部署ingress-nginx的方法步骤

本文链接: https://lsjlt.com/news/159472.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • k8s部署ingress-nginx的方法步骤
    目录前言一、部署配置Ingress二、使用https前言 k8s集群服务部署好之后,需要对外提域名访问,这时候就需要ingress-nginx了,今天来给大家分享一下 一、部署配...
    99+
    2024-04-02
  • k8s部署ingress-nginx的方法是什么
    本篇内容介绍了“k8s部署ingress-nginx的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、部署配置Ingress获取...
    99+
    2023-06-22
  • k8s之ingress-nginx详解和部署方案
    目录1、ingress介绍2、ingress的工作原理3、ingress可以解决的问题1)动态配置服务2)减少不必要的端口暴露4、部署ingress(deployment的方式)1)...
    99+
    2024-04-02
  • DockerCompose部署Nginx的方法步骤
    使用Docker Compose部署Nginx,创建docker-compose.yaml: [root@192 ~]# vim docker-compose.yaml 输入以下内容...
    99+
    2024-04-02
  • Docker上部署Nginx的方法步骤
    目录1.从 docker 下载 Nginx 镜像2.创建挂载目录3.为了保证文件的正确性,建议先进入容器把对应的文件给复制出来4.接下来修改下 default.conf 文件就好了5...
    99+
    2024-04-02
  • 在K8s上部署Redis集群的方法步骤
    目录一、前言 二、准备操作 三、StatefulSet简介 四、部署过程 1.创建NFS存储 2.创建Configmap 3.创建Headless service 4.创建Redis...
    99+
    2024-04-02
  • springboot项目部署到k8s上的方法步骤
    目录springboot部署到k8s步骤创建secret创建secret创建deployment的yaml文件创建deployment创建service, nodePortsprin...
    99+
    2023-05-19
    springboot部署到k8s
  • nginx的zabbix 5.0安装部署的方法步骤
    目录实验环境安装部署安装配置数据库(这里使用的是mariadb,感兴趣的同学可以使用编译或者别的方法安装mysql试试)zabbix服务端的配置web端php的配置web端的ngin...
    99+
    2024-04-02
  • k8s部署flask的步骤是什么
    部署一个Flask应用程序到Kubernetes(k8s)可以按照以下步骤进行: 创建Docker镜像:首先需要将Flask应用...
    99+
    2023-10-23
    k8s
  • k8s部署springcloud的步骤是什么
    部署Spring Cloud在Kubernetes(k8s)上的步骤如下:1. 创建Kubernetes集群:首先,需要创建一个Ku...
    99+
    2024-02-29
    k8s springcloud
  • K8s部署gitlab的步骤是什么
    创建一个Kubernetes集群,确保集群可以正常运行。 安装Helm(如果尚未安装),并添加GitLab的Helm仓库。 ...
    99+
    2024-03-05
    K8s gitlab
  • k8s集群部署的步骤是什么
    部署Kubernetes集群的步骤如下:1. 准备环境:为部署Kubernetes集群的所有节点准备合适的操作系统(如Ubuntu、...
    99+
    2023-10-11
    k8s
  • k8s安装部署的步骤是什么
    安装和部署Kubernetes的步骤如下: 安装Docker:Kubernetes依赖于Docker作为容器化技术,因此首先需要...
    99+
    2023-10-27
    k8s
  • 如何基于k8s的Ingress部署hexo博客
    这篇文章主要介绍“如何基于k8s的Ingress部署hexo博客”,在日常操作中,相信很多人在如何基于k8s的Ingress部署hexo博客问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何基于k8s的Ing...
    99+
    2023-06-19
  • docker部署kafka的方法步骤
    目录1. 搭建docker2.进入容器3.修改配置文件4.测试kafka1. 搭建docker 这里我直接用的是docker-compose部署,所以需要提前安装好compose。 ...
    99+
    2024-04-02
  • k8s部署Ingress并创建规则的详细介绍
    目录一、Ingress介绍二、Ingress文件获取1.1 、说明1.2 、文件内容三、k8s应用 ingress-controller.yaml四、创建Ingress规则五、应用文...
    99+
    2024-04-02
  • django8.5 项目部署Nginx的操作步骤
    1、概念:  Nginx是轻量级的高性能Web服务器,提供了诸如HTTP代理和反向代理、负载均衡等一系列重要的特性。由C语言编写,执行效率高。 作用: &emsp...
    99+
    2024-04-02
  • 在docker中部署k8s的方法
    K8s k8s是一个cluster集群,在cluster集群中有多个Namespace,一个namespace下又有多个pods,一个pod下有多个container。 这篇文章带你...
    99+
    2024-04-02
  • Ansible部署K8s集群的方法
    目录检查网络:k8s-check.yaml检查k8s各主机的网络是否可达;检查k8s各主机操作系统版本是否达到要求;配置k8s集群dns解析: k8s-hosts-cfg.yaml配...
    99+
    2024-04-02
  • k8s集群部署eureka的方法
    这篇文章主要介绍“k8s集群部署eureka的方法”,在日常操作中,相信很多人在k8s集群部署eureka的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”k8s集群部署eureka的方法”的疑惑有所帮助!...
    99+
    2023-06-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作