Kubernetes(k8s)helm 部署 Nginx Ingress

一、集群信息

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

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

# 下面代码复制黏贴即可
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 文件,不然域名是访问不了的

版权声明:
作者:Akiraka
链接:https://www.akiraka.net/kubernetes/393.html
来源:Akiraka
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
海报
Kubernetes(k8s)helm 部署 Nginx Ingress
一、集群信息 方法因人而异,但大同小异,以下是我的部署方法。 1.1、 主机信息 主机名 ip地址 描述 核心 内存 node-01 192.168.8.131 master 节点 2……
<<上一篇
下一篇>>
文章目录
关闭
目 录