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 域名跳转

https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/#permanent-redirect

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
posted @ 2024-11-03 13:41  broadviews  阅读(210)  评论(0)    收藏  举报