#解压缩[root@k8s-master helm]# tar -zxvf helm-v3.8.2-linux-amd64.tar.gz [root@k8s-master helm]# mv linux-amd64/helm /usr/local/bin/helm#查看版本[root@k8s-master helm]# helm version
version.BuildInfo{Version:"v3.8.2", GitCommit:"6e3701edea09e5d55a8ca2aae03a68917630e91b", GitTreeState:"clean", GoVersion:"go1.17.5"}
添加ingress-nginx 仓库
[root@k8s-master helm]# helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx"ingress-nginx" has been added to your repositories
#查看[root@k8s-master helm]# helm repo list
NAME URL
ingress-nginx https://kubernetes.github.io/ingress-nginx
[root@k8s-master ~]# helm search repo ingress-nginx
NAME CHART VERSION APP VERSION DESCRIPTION
ingress-nginx/ingress-nginx 4.1.1 1.2.0 Ingress controller for Kubernetes using NGINX a...
下载 ingress-nginx配置文件
[root@k8s-master ~]# cd /home/[root@k8s-master home]# mkdir ingress-nginx[root@k8s-master home]# cd ingress-nginx/[root@k8s-master ingress-nginx]# helm pull ingress-nginx/ingress-nginx[root@k8s-master ingress-nginx]# ls
ingress-nginx-4.1.1.tgz
#解压[root@k8s-master ingress-nginx]# tar zxvf ingress-nginx-4.1.1.tgz [root@k8s-master ingress-nginx]# cd ingress-nginx[root@k8s-master ingress-nginx]# ls
CHANGELOG.md Chart.yaml ci OWNERS README.md README.md.gotmpl templates values.yaml
#修改配置文件[root@k8s-master ingress-nginx]# vim values.yaml #修改镜像仓库#1
controller:
name: controller
image:
## Keep false as default for now!
chroot: false
registry: registry.cn-shanghai.aliyuncs.com
image: wanfei/ingress-nginx-controller
tag: "v1.1.2"#digest: sha256:d8196e3bc1e72547c5dec66d6556c0ff92a23f6d0919b206be170bc90d5f9185#2
dnsPolicy: ClusterFirstWithHostNet
hostNetwork: true#3
kind: DaemonSet
#4
terminationGracePeriodSeconds: 300# -- Node labels for controller pod assignment## Ref: https://kubernetes.io/docs/user-guide/node-selection/##
nodeSelector:
kubernetes.io/os: linux
ingress: "true"#5#type: LoadBalancer改为
type: ClusterIP
#6
patch:
enabled: true
image:
registry: registry.cn-shanghai.aliyuncs.com
image: wanfei/kube-webhook-certgen
tag: v1.1.1
#digest: sha256:64d8c73dca984af206adf9d6d7e46aa550362b1d7a01f3a0a91b20cc67868660
pullPolicy: IfNotPresent
安装
#创建namespace[root@k8s-master ingress-nginx]# kubectl create ns ingress-nginx
namespace/ingress-nginx created
#给节点打标签[root@k8s-master ingress-nginx]# kubectl label node k8s-master ingress=true
node/k8s-master labeled
[root@k8s-master ingress-nginx]# helm install ingress-nginx -n ingress-nginx .#安装完毕[root@k8s-master ingress-nginx]# kubectl get po -n ingress-nginx
NAME READY STATUS RESTARTS AGE
ingress-nginx-controller-dxfbz 1/1 Running 0 2m56s
添加节点
[root@k8s-master ingress-nginx]# kubectl label node k8s-node01 ingress=true
node/k8s-node01 labeled
[root@k8s-master ingress-nginx]# kubectl get po -n ingress-nginx -owide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
ingress-nginx-controller-89pxh 0/1 ContainerCreating 0 50s 172.16.55.221 k8s-node01 <none><none>
ingress-nginx-controller-dxfbz 1/1 Running 0 78m 172.16.55.220 k8s-master <none><none>
删除节点
[root@k8s-master ingress-nginx]# kubectl label node k8s-node01 ingress-
node/k8s-node01 labeled
[root@k8s-master ingress-nginx]# kubectl get po -n ingress-nginx -owide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
ingress-nginx-controller-dxfbz 1/1 Running 0 81m 172.16.55.220 k8s-master <none><none>
[root@k8s-master ~]# kubectl create -f ingress.yaml [root@k8s-master ~]# kubectl get ing
NAME CLASS HOSTS ADDRESS PORTS AGE
example <none> foo.bar.com 10.102.228.152 80 6m24s
#设置 host ingress安装的服务器IP foo.bar.com#通过浏览器 访问 foo.bar.com
4、多域名使用
修改yaml
[root@k8s-master ~]# cp ingress.yaml ingress-dulDomain.yaml#查看可以绑定的svc[root@k8s-master ~]# kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none>443/TCP 13d
nginx-externalname ExternalName <none> www.baidu.com <none> 23h
nginx-svc-external ClusterIP 10.96.196.165 <none>80/TCP 24h
nginx-test-svc NodePort 10.99.39.37 <none>80:31000/TCP 27h
#修改yaml[root@k8s-master ~]# vim ingress-dulDomain.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: "nginx"
name: example
spec:
rules:
- host: foo.bar.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: nginx-test-svc
port:
number: 80
- host: foo2.bar.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: nginx-test-svc
port:
number: 80#重新发布[root@k8s-master ~]# kubectl replace -f ingress-dulDomain.yaml
ingress.networking.k8s.io/example replaced
[root@k8s-master ~]# kubectl get ing
NAME CLASS HOSTS ADDRESS PORTS AGE
example <none> foo.bar.com,foo3.bar.com 10.102.228.152 80 48m