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
- 项目地址: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 文件,不然域名是访问不了的
版权声明:
作者:Akiraka
链接:https://www.akiraka.net/kubernetes/393.html
来源:Akiraka
文章版权归作者所有,未经允许请勿转载。
THE END
0
二维码
海报
Kubernetes(k8s)helm 部署 Nginx Ingress
一、集群信息
方法因人而异,但大同小异,以下是我的部署方法。
1.1、 主机信息
主机名
ip地址
描述
核心
内存
node-01
192.168.8.131
master 节点
2……
文章目录
关闭
共有 0 条评论