helm部署ingress
Ingress 安装
首先安装helm管理工具
https://helm.sh/docs/intro/install/
使用helm安装ingress
https://kubernetes.github.io/ingress-nginx/deploy/#using-helm
添加ingress的helm仓库
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
下载ingress的helm包至本地
helm pull ingress-nginx/ingress-nginx --version 4.11.3
tar xf ingress-nginx-4.11.3.tgz
cd ingress-nginx
vim values.yaml
需要修改values.yaml的位置
a) Controller和admissionWebhook的镜像地址,需要将公网镜像同步至公司内网镜像仓库
b) 镜像的digest值注释
c) hostNetwork设置为true
d) dnsPolicy设置为 ClusterFirstWithHostNet
e) NodeSelector添加ingress: "true"部署至指定节点
f) 类型更改为kind: DaemonSet
g) 将ingressClassResource 设置为 default: true
h) 启用错误友好界面
defaultBackend:
##
enabled: true
添加 confmap
config:
apiVersion: v1
client_max_body_size: 20m
custom-http-errors: "404,415,503"
i) 设置时区变量
controller:
extraEnvs:
- name: TZ
value: Asia/Shanghai
将ingress controller部署至Node节点
ingress controller不能部署在master节点,需要安装视频中的步骤将ingress controller部署至Node节点,
生产环境最少三个ingress controller,并且最好是独立的节点
kubectl label node k8s-node34 ingress=true # 添加标签
kubectl label node k8s-master03 ingress- # 删除标签
部署ingress
kubectl create ns ingress-nginx
helm install ingress-nginx -n ingress-nginx .
# 更新
helm upgrade ingress-nginx -n ingress-nginx .
# 查看
[root@k8s-master31 01-ingress-nginx]# kubectl get pod -n ingress-nginx -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
ingress-nginx-controller-8pmrq 1/1 Running 0 11m 10.0.0.34 k8s-node34 <none> <none>
ingress 入门
[root@k8s-master31 ~]# kubectl create deployment nginx --image=nginx:1.20 -n study-ingress
deployment.apps/nginx created
[root@k8s-master31 ~]# kubectl expose deployment nginx --port 80 -n study-ingress
service/nginx exposed
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ingress-nginx
namespace: study-ingress
spec:
rules:
- host: ingress.test.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: nginx
port:
number: 80
ingress 域名跳转
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ingress-redirect
namespace: study-ingress
annotations:
nginx.ingress.kubernetes.io/permanent-redirect: https://www.google.com # 永久重定向
nginx.ingress.kubernetes.io/permanent-redirect-code: '308' # 永久重定向代码
spec:
rules:
- host: ingress.redirect.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: nginx
port:
number: 80

浙公网安备 33010602011771号