云架构


创建多个Ingress

创建多个Ingress

一个K8s集群中可能有多个Ingress,比如内网与公网Ingress、移动端APP对应的后台Ingress等

https://github.com/oracle/oci-cloud-controller-manager/blob/master/docs/load-balancer-annotations.md

kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.4.0/deploy/static/provider/cloud/deploy.yaml
wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.4.0/deploy/static/provider/cloud/deploy.yaml
cp deploy.yaml ingress-namespace.yaml

#下面我就对ingress-namespace.yaml进行编辑
sed -i 's#namespace: .*#namespace: {namespace}-ingress-nginx#g' ingress-namespace.yaml
sed -i 's#instance: ingress-nginx#instance: {namespace}-ingress-nginx#g' ingress-namespace.yaml
sed -i 's#app.kubernetes.io/name: ingress-nginx#app.kubernetes.io/name: {namespace}-ingress-nginx#g' ingress-namespace.yaml
sed -i 's#ingress-class=nginx#ingress-class={namespace}#g' ingress-namespace.yaml
sed -i 's#controller-class=k8s.io/ingress-nginx#controller-class=k8s.io/{namespace}-ingress-nginx#g' ingress-namespace.yaml
sed -i 's#controller: k8s.io/ingress-nginx#controller: k8s.io/{namespace}-ingress-nginx#g' ingress-namespace.yaml
sed -i 's#  name: nginx#  name: {namespace}#g' ingress-namespace.yaml
sed -i 's#name: ingress-nginx-admission#name: {namespace}-ingress-nginx-admission#g' ingress-namespace.yaml
sed -i 's#  name: ingress-nginx$#  name: {namespace}-ingress-nginx#g' ingress-namespace.yaml
sed -i 's#serviceAccountName: ingress-nginx-admission#serviceAccountName: {namespace}-ingress-nginx-admission#g' ingress-namespace.yaml
sed -i 's#serviceAccountName: ingress-nginx$#serviceAccountName: {namespace}-ingress-nginx#g' ingress-namespace.yaml
sed -i 's#webhook-name=ingress-nginx-admission#webhook-name={namespace}-ingress-nginx-admission#g' ingress-namespace.yaml
sed -i 's#secret-name=ingress-nginx-admission#secret-name={namespace}-ingress-nginx-admission#g' ingress-namespace.yaml
sed -i 's#secretName: ingress-nginx-admission#secretName: {namespace}-ingress-nginx-admission#g' ingress-namespace.yaml
sed -i 's#host=ingress-nginx-controller-admission,ingress-nginx-controller-admission#host={namespace}-ingress-nginx-controller-admission,{namespace}-ingress-nginx-controller-admission#g' ingress-namespace.yaml
sed -i 's#name: ingress-nginx-controller-admission#name: {namespace}-ingress-nginx-controller-admission#g' ingress-namespace.yaml

创建多个Ingress-controller

sed 's#{namespace}#dev#g'  ingress-namespace.yaml |kubectl apply -f -
sed 's#{namespace}#test#g'  ingress-namespace.yaml |kubectl apply -f -
sed 's#{namespace}#prod#g'  ingress-namespace.yaml |kubectl apply -f -

创建Ingress试试

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: www
  namespace: default
  annotations:
    kubernetes.io/ingress.class: dev   #修改这里即可
spec:
  rules:
  - host: www.xxxx.cn
    http:
      paths:
      - backend:
          service:
            name: web
            port:
              number: 80
        path: /
        pathType: ImplementationSpecific
ad