Akiraka Akiraka
  • Home
  • Linux
    • ELK
    • PHP
    • Shell
    • Nginx
    • Docker
      • Docker Compose
    • Centos
    • Ubuntu
    • Jenkins
  • Python
  • Mac OS
  • Windows
  • Big Data
    • Hadoop
    • CDH
    • Hive
    • Spark
    • ZooKeeper
  • K8S
    • Kubernetes
    • Helm
  • Other
  • Quark
  • Contribute
  • Home
  • Linux
    • ELK
    • PHP
    • Shell
    • Nginx
    • Docker
      • Docker Compose
    • Centos
    • Ubuntu
    • Jenkins
  • Python
  • Mac OS
  • Windows
  • Big Data
    • Hadoop
    • CDH
    • Hive
    • Spark
    • ZooKeeper
  • K8S
    • Kubernetes
    • Helm
  • Other
  • Quark
  • Contribute
首页 Kubernetes Helm Kubernetes(k8s)helm 部署 Nginx Ingress

Kubernetes(k8s)helm 部署 Nginx Ingress

Akiraka 2年前

文章目录

  • 一、集群信息
    • 1.1、 主机信息
    • 1.2、版本说明
  • 二、部署 Nginx Ingress
    • 2.1、安装 Nginx Ingress
    • 2.2、查看运行 Pod 状态
    • 2.3、查看 Nginx Ingress Pvc
  • 三、访问测试
    • 3.1、 创建 Deployment Service Ingress
  • 四、访问 Tomcat 服务

一、集群信息

  • 方法因人而异,但大同小异,以下是我的部署方法。

1.1、 主机信息

主机名 ip地址 描述 核心 内存
node-01 192.168.8.131 master 节点 2核 8G
node-02 192.168.8.132 node 节点 2核 8G
node-03 192.168.8.133 node 节点 2核 8G

1.2、版本说明

服务 版本
helm 3.1.1
Kubernetes 1.17.3
nginx-ingress 1.40.1

二、部署 Nginx Ingress

2.1、安装 Nginx Ingress

  • 项目地址:https://hub.helm.sh/charts/stable/nginx-ingress
  • ingress 日志 json,方便做收集
  • ingress 获取客户端真实请求 ip 地址
# 下面代码复制黏贴即可
cat <<'EOF'> install-ingress.yaml
controller:
  image: 
    registry:
    # 替换为七牛云加速
    repository: siriuszg/nginx-ingress-controller
  # 副本数量
  replicaCount: 1
  service: 
    # 使用云主机负载均衡,注销 type: NodePort
    type: NodePort
    # 线上环境看自己情况
    nodePorts: 
      http: "30719"
      https: "30030"
    # ingress 获取客户端真实 ip 地址
    hostNetwork: true
    externalTrafficPolicy: Local
defaultBackend:
  image:
    # 该镜像其他加速不一定成功,我已上传到自己阿里云仓库
    repository: registry.cn-hangzhou.aliyuncs.com/g-aka/defaultbackend-amd64
  # 副本数量
  replicaCount: 1
EOF

# 使用 helm 安装 Nginx Ingress
helm install nginx-ingress -n kube-system --values install-ingress.yaml stable/nginx-ingress --version 1.41.2

2.2、查看运行 Pod 状态

  • nginx-ingress-default-backend 默认后端。如果你没有配置路由或路由配错了,将会由此 pod 兜底,一般会显示 404 给你。
  • nginx-ingress-controller:nginx-ingress 控制器,负责 nginx-ingress pod 的生命周期管理。nginx-ingress pod 本质就是 nginx。用来处理请求路由等功能。这也是为什么称 nginx-ingress pod 是集群流量入口的缘故。
[root@Node-01 ~]# kubectl get pod -n ingress-nginx
NAME                                             READY   STATUS    RESTARTS   AGE
nginx-ingress-controller-5db657c796-tnhdc        1/1     Running   0          2m1s
nginx-ingress-default-backend-659bd647bd-qdk9t   1/1     Running   0          2m1s

2.3、查看 Nginx Ingress Pvc

  • 80 固定端口为:30719
  • 443 固定端口为:30030
[root@Node-01 ~]# kubectl get svc -n ingress-nginx
NAME                            TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)                      AGE
nginx-ingress-controller        NodePort    10.1.212.172   <none>        80:30719/TCP,443:30030/TCP   37m
nginx-ingress-default-backend   ClusterIP   10.1.155.71    <none>        80/TCP                       37m

三、访问测试

3.1、 创建 Deployment Service Ingress

  • 编写 tomcat-ingress.yaml 配置文件
  • 域名:tomcat.akiraka.net
cat > tomcat-ingress.yaml <<EOF
apiVersion: apps/v1
kind: Deployment
metadata:
  name: web-tomcat
spec:
  replicas: 1
  selector:
    matchLabels:
      app: web-tomcat
  template:
    metadata:
      labels:
        app: web-tomcat
    spec:
      containers:
      - image: tomcat:8.0.24
        name: tomcat
        ports:
        - containerPort: 8080
          protocol: TCP
---
kind: Service
apiVersion: v1
metadata:
  name: tomcat-service
spec:
  ports:
    - port: 8080
      targetPort: 8080
  selector:
    app: web-tomcat
  type: NodePort
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: tomcat-ingress
spec:
  rules:
    - host: tomcat.akiraka.net
      http:
        paths:
        - path: /
          backend:
            serviceName: tomcat-service
            servicePort: 8080
EOF

#   应用
kubectl apply -f tomcat-ingress.yaml

四、访问 Tomcat 服务

  • 域名我设置的是:tomcat.akiraka.net 创建 nginx-ingree 固定端口是 30719
  • 方式地址:tomcat.akiraka.net:30719
  • 记得修改自己电脑 host 文件,不然域名是访问不了的

Kubernetes(k8s)helm 部署 Nginx Ingress-Akiraka

#helm#k8s#kubernetes#nginx
0
猜你喜欢
  • KeyCloak 身份验证 Nginx 502网关错误
  • Helm 3 内置对象
  • Ingress Nginx 添加 Basic Auth 安全认证
  • CoreDNS 添加自定义 Hosts 解析与 DNS 转发解析
  • Container 命令ctr、crictl 命令使用说明
评论 (0)
请登录以参与评论。
立即登录
    暂无评论
Akiraka
站长
本人擅长 Ai、Au、Fl、Ae、Pr、Ps 等软件的安装与卸载,精通 CSS、JavaScript、PHP、Python、Shell、Go 等单词的拼写,熟悉 Windows、Linux、Mac、Android、IOS 等系统的开关机!
158
文章
24
评论
73
获赞
Popular Articles
TOP1
Kubernetes(k8s)Helm 部署 EFK 集群
2年前
TOP2
Kubernetes(k8s)helm 搭建 prometheus + Grafana 监控
2年前
TOP3
Kubernetes(k8s)Helm 部署 Jenkins 持续化集成部署
2年前
TOP4
Container 命令ctr、crictl 命令使用说明
10月前
TOP5
Elasticsearch X-Pack 插件破解
2年前
Related Articles
Nginx 普通配置
2年前
Kubernetes(k8s)helm 部署 RabbitMq 集群
2年前
密码保护:Kubeadm-etcd 备份
2年前
Kubernetes(k8s)Helm 部署 Mysql 数据库
2年前
Docker Nginx反向代理支持websocket
2年前
Copyright © 2019-2022 Akiraka. 沪18036911号