Entrada de K8S


Video de referencia : https://ke.qq.com/user/index/index.html#/plan/cid=1709963&term_id=102815140

1. Concepto

1.1.NodePort存在的不足

Un puerto solo se puede asociar con un servicio, y el puerto debe planificarse con anticipación.
Solo admite balanceo de carga de 4 capas (NodeIP + Port)

1.2.Ingress

Associated Service
realiza el equilibrio de carga de Pod a través de Ingress Controller,
admite TCP / UDP capa 4 y HTTP capa 7
Inserte la descripción de la imagen aquí

2. Implementar Ingress Controller (equilibrio de carga global)

2.1.下载yaml文件

Dirección: https://github.com/kubernetes/ingress-nginx/tree/nginx-0.30.0
Inserte la descripción de la imagen aquí

2.2.下载镜像

docker pull siriuszg/nginx-ingress-controller:0.30.0

2.3修改mandatory.yaml

Utilice el
espejo de red del host para modificar la imagen reflejada descargada en el paso anterior

Inserte la descripción de la imagen aquí
kubectl apply -f required.yaml

Monitoreará el puerto 80 y 443 del host normalmente
Inserte la descripción de la imagen aquí

Tres reglas de ingreso basadas en HTTP

3.1.yaml文件

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: ingress
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
  - host: foo.bar.com
    http:
      paths:
      - backend:
          serviceName: web
          servicePort: 80

Explicación

host: foo.bar.com			#访问Ingress的域名
serviceName: web			#管理服务名为web的Service
servicePort: 80				#Service监听的端口为80,通过kubectl get svc查看

kubectl apply -f ingress.yaml
kubectl get ing
Inserte la descripción de la imagen aquí

3.2.访问域名

Verifique en qué nodo nginx-ingress-controller se implementa

kubectl get pod -o wide -ningress-nginx

nginx-ingress-controller se implementa en el nodo 192.168.1.10.
Inserte la descripción de la imagen aquí
Dado que foo.bar.com es temporal, es necesario escribir la resolución del nombre de dominio en el archivo hosts

echo "192.168.1.10 foo.bar.com" >> /etc/hosts
curl foo.bar.com

Inserte la descripción de la imagen aquí

Cuatro, reglas de entrada basadas en HTTPS

4.1.生成自签证书

openssl genrsa > cert.key
openssl req -new -x509 -key cert.key -subj "/CN=common" >cert.pe

4.2.创建secret

kubectl create secret tls foo-bar-com --cert=cert.pem --key=cert.key
kubectl get secrets

Inserte la descripción de la imagen aquí

4.3.Ingress规则

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: tls-example-ingress
spec:
  tls:
  - hosts:
    - foo.bar.com
    secretName: foo-bar-com
  rules:
    - host: foo.bar.com
      http:
        paths:
        - path: /
          backend:
            serviceName: web
            servicePort: 80

kubectl apply -f ingress-https.yaml
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/anqixiang/article/details/108809021
Recomendado
Clasificación