欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

K8S之Ingress

程序员文章站 2022-05-04 08:01:16
...


参考视频:https://ke.qq.com/user/index/index.html#/plan/cid=1709963&term_id=102815140

一、概念

1.1.NodePort存在的不足

一个端口只能关联一个服务,端口需提前规划
只支持4层负载均衡(NodeIP+Port)

1.2.Ingress

关联Service
通过Ingress Controller实现Pod的负载均衡
支持TCP/UDP 4层和HTTP 7层
K8S之Ingress

二、部署Ingress Controller(全局的负载均衡)

2.1.下载yaml文件

地址:https://github.com/kubernetes/ingress-nginx/tree/nginx-0.30.0
K8S之Ingress

2.2.下载镜像

docker pull siriuszg/nginx-ingress-controller:0.30.0

2.3修改mandatory.yaml

使用宿主机网络
镜像修改为上一步下载的镜像

K8S之Ingress
kubectl apply -f mandatory.yaml

正常会监听宿主机的80和443端口
K8S之Ingress

三、基于HTTP的Ingress规则

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

解释

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

kubectl apply -f ingress.yaml
kubectl get ing
K8S之Ingress

3.2.访问域名

查看nginx-ingress-controller部署到哪个节点上

kubectl get pod -o wide -ningress-nginx

nginx-ingress-controller部署到了192.168.1.10节点上
K8S之Ingress
由于foo.bar.com是临时起的,需要写域名解析到hosts文件

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

K8S之Ingress

四、基于HTTPS的Ingress规则

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

K8S之Ingress

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
K8S之Ingress
K8S之Ingress

相关标签: K8S kubernetes