目录
- 创建 Kubernetes Secret:将证书和私钥存储在 Kubernetes Secret 中。使用以下命令创建一个 Secret:
- kubectl apply -f nginx-ingress.yaml
安装负载均衡metalb
安装metalb
kubectl create namespace metallb-system
配置metalb
#kubectl create secret generic -n metallb-system memberlist --from-literal=secretkey="$(openssl rand -base64 128)" kubectl apply -f config.yaml
#config.yaml apiVersion: v1 kind: ConfigMap metadata: namespace: metallb-system name: config data: config: | address-pools: - name: default protocol: layer2 addresses: - 192.168.215.100-192.168.215.199 #改成IP分配的范围
3. 部署 MetalLB:使用以下命令将 MetalLB 部署到 Kubernetes 集群中。
kubectl apply -f metallb.yaml
4. 验证安装
kubectl get pods -n metallb-system
安装成功如下图,我们可以看到LoadBalancer类型的service获取到外部地址
安装ingress-nginx
应用ingress,我们会发现没有外部IP,因为需要安装ingress-nginx
部署ingress-nginx
kubectl apply -f deploy.yaml #deploy.yaml我把镜像传到阿里云镜像服务器,不然国外镜像无法访问
2. 验证安装:运行以下命令,确保 Ingress-Nginx 正常运行。
使用http域名访问网站应用
#nginx-ingress.yaml apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: nginx-ingress spec: ingressClassName: "nginx" #这个参数没有的ingress将分配不到IP rules: - host: test.wxy.kim http: paths: - path: / pathType: Prefix backend: service: name: nginx-service port: number: 80
使用https访问网站应用
创建 Kubernetes Secret:将证书和私钥存储在 Kubernetes Secret 中。使用以下命令创建一个 Secret:
kubectl create secret tls wxy-secret --cert=/root/cert/fullchain.pem --key=/root/cert/privkey.pem
kubectl apply -f nginx-ingress.yaml
# nginx-ingress.yaml apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: nginx-ingress spec: ingressClassName: "nginx" #这个参数没有的ingress将分配不到IP tls: - hosts: - test.wxy.kim secretName: wxy-secret rules: - host: test.wxy.kim #你的域名 http: paths: - path: / pathType: Prefix backend: service: name: nginx-service port: number: 80