K8s: implementar el servicio nginx-ingress

1. Preparación de recursos

1. Extraiga el paquete de recursos y descomprímalo.

helm pull bitnami/nginx-ingress-controller   %拉取包
tar zxf nginx-ingress-controller-7.5.0.tgz   %解压(需要在/helm目录下)

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

2. Extraer imágenes relacionadas

拉取nginx-ingress-controller镜像并上传到harbor仓库:
docker load -i nginx-ingress-controller-0.44.0.tar  %直接load -i 已经下载好的包
docker push reg.westos.org/bitnami/nginx-ingress-controller:0.44.0-debian-10-r28
docker push reg.westos.org/bitnami/nginx:1.19.8-debian-10-r6

拉取metallb相关镜像并上传到harbor仓库:
docker load -i metallb.tar     %直接load -i 已经下载好的包
docker tag metallb/speaker:v0.9.5 reg.westos.org/metallb/speaker:v0.9.5 
docker push reg.westos.org/metallb/speaker:v0.9.5
docker tag metallb/controller:v0.9.5 reg.westos.org/metallb/controller:v0.9.5
docker push reg.westos.org/metallb/controller:v0.9.5

Inserte la descripción de la imagen aquí

Dos, implementación de nginx-ingress

1. Edite el archivo values.yaml

global:            %指定全局
   imageRegistry: reg.westos.org   %harbor

Inserte la descripción de la imagen aquí

2. Instale ipvsadm en cada nodo

yum install -y ipvsadm

Inserte la descripción de la imagen aquí

3. Cambie al modo ipvs en el nodo principal.

kubectl edit configmap -n kube-system kube-proxy
strictARP: true
mode: "ipvs"

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

kubectl get pod -n kube-system |grep kube-proxy | awk '{system("kubectl delete pod "$1" -n kube-system")}'   %重启容器使上述更改生效

Inserte la descripción de la imagen aquí

Tres, implementación de metallb

1. Edite metallb.yaml para crear un espacio de nombres:

mkdir metallb
vim metallb.yaml:添加下述内容
kind: Namespace
metadata:
  name: metallb-system
  labels:
    app: metallb

kubectl apply -f metallb.yaml 
kubectl  create  secret generic -n metallb-system memberlist --from-literal=secretkey="$(openssl rand -base64 128)"

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

2. Edite config.yaml y aplique

apiVersion: v1
kind: ConfigMap
metadata:
  namespace: metallb-system
  name: config
data:
  config: |
    address-pools:       %地址池
    - name: default  
      protocol: layer2   %二层协议 
      addresses:
      - 172.25.1.100-172.25.1.200
kubectl apply -f config.yaml 

Inserte la descripción de la imagen aquí

Cuatro, instalación

cd nginx-ingress-controller/
kubectl create namespace nginx-ingress-controller
helm install nginx-ingress-controller . -n nginx-ingress-controller 
kubectl -n nginx-ingress-controller get pod
kubectl -n nginx-ingress-controller get all

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/nk298120/article/details/115295641
Recomendado
Clasificación