ingress 简介
ingress-nginx 官方网站
ingress-nginx-github
部署ingress控制器
从官网上获取ingress-nginx 的安装yaml 清单
wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.2.0/deploy/static/provider/cloud/deploy.yaml
查看清单中需要的镜像,提前通过特殊手段获取相应的版本的镜像文件,然后加载的集群中各个节点中(利用阿里云的容器构建服务)
cat deploy.yaml |grep image
执行yaml 清单
kubectl apply -f deploy.yaml
查看ingress 状况
kubectl get all -n ingress-nginx
可以看到有两个job 类型的pod 处于completed 状态,(缘故还没有搞明白,后续待跟进,)
ingress 控制器有多种方案,这只是一个简单让ingress实现的部署。
ingress 的使用
deployment——service——ingress
第一步: deployment-----service yaml 资源清单
(两个deployment 搭配两个service )
cat >> dev_deployment_service.yaml << EOF
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-dev
namespace: dev
spec:
replicas: 2
selector:
matchLabels:
app: nginx-dev
template:
metadata:
labels:
app: nginx-dev
spec:
containers:
- name: nginx-dev
image: nginx:1.20.2
ports:
- containerPort: 80
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: nginx-old
name: nginx-old
namespace: dev
spec:
replicas: 2
selector:
matchLabels:
app: nginx-old
template:
metadata:
labels:
app: nginx-old
spec:
containers:
- name: nginx-old
image: nginx:1.18.0
---
apiVersion: v1
kind: Service
metadata:
labels:
app: nginx-dev
name: nginx-dev
namespace: dev
spec:
selector:
app: nginx-dev
ports:
- port: 8000
protocol: TCP
targetPort: 80
---
apiVersion: v1
kind: Service
metadata:
labels:
app: nginx-old
name: nginx-old
namespace: dev
spec:
selector:
app: nginx-old
ports:
- port: 8000
protocol: TCP
targetPort: 80
EOF
第二步: 简单的基于域名访问的ingress 资源清单
cat >> ingress.yaml << EOF
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ingress-nginx-dev
namespace: dev
spec:
ingressClassName: nginx
rules:
- host: "dev.etiantian.org"
http:
paths:
- pathType: Prefix
path: "/"
backend:
service:
name: nginx-dev
port:
number: 8000
- host: "old.etiantian.org"
http:
paths:
- pathType: Prefix
path: "/"
backend:
service:
name: nginx-old
port:
number: 8000
EOF
第三步:执行资源清单,
kubectl apply -f dev_deployment_service.yaml
kubectl apply -f ingress.yaml
kubectl get all -n dev -o wide
kubec get ingress -n dev
第四步:验证域名访问是否正常
win10 C:\Windows\System32\drivers\etc 目录下修改hosts文件
192.168.6.112 dev.etiantian.org
192.168.6.112 old.etiantian.org
自带负载均衡
参考来源:
ingress多个模式
ingress-nginx部署
相当不错的博客
同上