Files
Kubernetes/网关/Ingress/创建Ingress资源提供访问.md
offends b44594def6
All checks were successful
continuous-integration/drone Build is passing
修改和新增
2025-12-23 01:53:01 +08:00

97 lines
2.2 KiB
Markdown

> 本文作者:丁辉
# 创建Ingress资源提供访问
## 准备工作
1. 部署 Nginx 资源
```yaml
kubectl apply -f https://gitee.com/offends/Kubernetes/raw/main/File/Yaml/nginx-deployment.yaml
kubectl apply -f https://gitee.com/offends/Kubernetes/raw/main/File/Yaml/nginx-deployment-svc.yaml
```
2. 查看部署情况
```bash
kubectl get deploy,svc
```
## 示例
1. 创建对外域名证书
```bash
kubectl create secret tls nginx-tls --key nginx.key --cert nginx.pem -n default
```
2. 创建 Ingress 资源
- HTTP
```yaml
cat <<EOF | kubectl apply -f -
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: nginx-ingress
namespace: default
annotations:
# 不限制文件上传大小 或 选择其他参数
nginx.ingress.kubernetes.io/proxy-body-size: "0"
labels:
name: nginx-ingress
spec:
ingressClassName: nginx # 通过 kubectl get ingressclass 查看
rules:
- http:
paths:
- backend:
service:
name: nginx-service # Nginx Serice 名称
port:
number: 80 # Nginx 端口
path: /
pathType: Prefix
EOF
```
- HTTPS
```yaml
cat <<EOF | kubectl apply -f -
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: nginx-ingress
namespace: default
annotations:
# 不限制文件上传大小 或 选择其他参数
nginx.ingress.kubernetes.io/proxy-body-size: "0"
labels:
name: nginx-ingress
spec:
ingressClassName: nginx # 通过 kubectl get ingressclass 查看
rules:
- host: nginx.example.com # 修改为自己的对外域名
http:
paths:
- backend:
service:
name: nginx-service # Nginx Serice 名称
port:
number: 80 # Nginx 端口
path: /
pathType: Prefix
# 对外域名证书配置
tls:
- hosts:
- nginx.example.com
secretName: nginx-tls
EOF
```
3. 访问域名