k8s学习记录,Ingress的使用(十六)
文章中资料参考来源2022 云原生Kubernetes全栈架构师
扩容ingress-nginx资源
当我们需要对ingress-nginx进行扩容时,只需要给待部署的节点,打上label标签即可,让节点满足ingress安装时的nodeSelector,即:ingress="true"
kubectl label node master02 ingress=true
缩容ingress-nginx资源
缩容的原理和扩容一致,只需将待缩容节点上的label标签去除即可
kubectl label node master02 ingress-
ingress-nginx简单入门:配置发布服务
配置发布服务,我们参考官网的用户指南,使用Annotations来进行配置
apiVersion: networking.k8s.io/v1beta1 # networking.k8s.io/v1beta1 在1.22+的版本就不支持了
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: "nginx" # 声明这里使用的是ingress的classname为nginx,是和ingress的values.yaml文件配置项ingressClass一致
name: example
namespace: default
spec:
rules: # 一个ingress可以配置多个rules
- host: zw.bar.com # 域名配置,可以不写,也可以匹配* , *.bar.com
http:
paths: # 相当于nginx的location配置,同一个host可以配置多个path / /abc
- backend:
serviceName: nginx # 当前ingrss需要代理的service的名字
servicePort: 80
path: /
配置完成后,我们使用其他能访问到节点的机器配置hosts来解析发布的域名
1、修改hosts文件
2、访问发布的域名
ingress-nginx配置多域名发布服务
新部署另一个新的nginx服务
1、修改ingress的配置文件
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: "nginx"
name: myingress
namespace: default
spec:
rules:
- host: www.creamk87.com
http:
paths:
- backend:
serviceName: nginx
servicePort: 80
path: /
- host: www.championDang.com
http:
paths:
- backend:
serviceName: nginx-new
servicePort: 80
path: /
2、使用新的yaml文件创建ingress服务
kubectl apply -f ingress-mulDomain.yaml