Kubernetes1.18.3 使用ingress

1-下载配置文件包(ingress-nginx-0.11.0)

链接: github下载
链接: 百度网盘 提取码: urpf

2-找到deploy文件夹下7个yaml文件提取出来

在这里插入图片描述

3-分别修改default-backend.yaml和with-rbac.yaml

在这里插入图片描述
在这里插入图片描述

4-创建

# 首先为需要搭建的node设置label
kubectl label nodes k8s-master1 custom/ingress-controller-ready=true
kubectl label nodes k8s-master2 custom/ingress-controller-ready=true
kubectl label nodes k8s-master3 custom/ingress-controller-ready=true

kubectl create -f namespace.yaml
kubectl create -f default-backend.yaml
kubectl create -f configmap.yaml
kubectl create -f tcp-services-configmap.yaml
kubectl create -f udp-services-configmap.yaml
kubectl create -f rbac.yaml
kubectl create -f with-rbac.yaml

# 查询修改配置的两个文件是否创建pod成功
kubectl get pod --namespace=ingress-nginx -o wide

在这里插入图片描述
错误提示: 如果遇到nginx-ingress-controller-xxx一直处于pending,删除with-rbac.yaml文件的nodeSelector部分

5-创建两个测试service

vim my-nginx.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-nginx
spec:
  replicas: 2
  selector:
    matchLabels:
      run: my-nginx
  template:
    metadata:
      labels:
        run: my-nginx
    spec:
      containers:
      - name: my-nginx
        image: 192.168.0.88:5000/nginx:1.7.9
        ports:
        - containerPort: 80

---
apiVersion: v1
kind: Service
metadata:
  name: my-nginx
  labels:
    run: my-nginx
spec:
  type: NodePort
  ports:
  - port: 80
    targetPort: 80
    nodePort: 30011
  selector:
    run: my-nginx

vim my-apache.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-apache
spec:
  replicas: 2
  selector:
    matchLabels:
      run: my-apache
  template:
    metadata:
      labels:
        run: my-apache
    spec:
      containers:
      - name: my-apache
        image: 192.168.0.88:5000/httpd:2.4
        ports:
        - containerPort: 80

---
apiVersion: v1
kind: Service
metadata:
  name: my-apache
  labels:
    run: my-apache
spec:
  type: NodePort
  ports:
  - port: 80
    targetPort: 80
    nodePort: 30002
  selector:
    run: my-apache

新建service与pod

kubectl create -f my-nginx.yaml
kubectl create -f my-apache.yaml

在这里插入图片描述

6-创建ingress(host为ip映射,下面会解释)

vim my-ingress.yaml
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: test-ingress
  namespace: default
spec:
  rules:
  - host: test.apache.ingress
    http:
      paths:
      - path: /
        backend:
          serviceName: my-apache
          servicePort: 80
  - host: test.nginx.ingress
    http:
      paths:
      - path: /
        backend:
          serviceName: my-nginx
          servicePort: 80
# 创建
kubectl create -f my-ingress.yaml

在这里插入图片描述

7-修改host文件

vim /etc/hosts
# 自定义域名,ip映射(node节点ip,随机选一个即可)
192.168.0.12  test.nginx.ingress
192.168.0.12  test.apache.ingress

浏览器访问结果

在这里插入图片描述
在这里插入图片描述

Logo

开源、云原生的融合云平台

更多推荐