Service资源和Ingress

Service资源介绍

Pod的生命周期非常短暂,每次镜像升级都会销毁以及创建,而我们知道每个Pod都拥有自己的IP地址,并且随着Pod删除和创建,这个IP是会变化的。当我们的Pod数量非常多的时候,前端的入口服务该怎么知道后面都有哪些Pod呢?为了解决这个问题k8s提供了一个对象Service和三种IP,创建的Service资源通过标签可以动态的知道后端的Pod的IP地址,在PodIP之上设计一个固定的IP,也就是ClusterIP,然后使用NodePort来对外暴露端口提供访问。

svc的特性

1)无需关注IP地址,重新拉起POD会自动更新

2)可以使用service的名字进行通信

因为kube-proxy的存在,启动一个svc,所有机器的ip都能访问

Ingress安装

# 1.拉取镜像
[root@node-1 ~]# docker pull nginx/nginx-ingress:1.7.2
[root@node-2 ~]# docker pull nginx/nginx-ingress:1.7.2

#2.下载资源清单
https://github.com/kubeguide/K8sDefinitiveGuide-V5-Sourcecode/blob/main/Chapter04/4.6.1%20nginx-ingress-controller.yaml

# 修改内容
1)将Deployment修改为DaemonSet
2)删除replicas: 1
3)删除node标签选择器
    nodeSelector:
    role: ingress-nginx-controller
4)删除末尾的mywebsite部分(ingress模版) 

[root@master-1 ~]# kubectl apply -f nginx-ingress-controller.yaml

# 查看ingress pod
[root@master-1 ~]# kubectl get pod -n nginx-ingress -o wide

# mywebsite-ingress.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: wp-ingress
  naemspace: blog
spec:
  rules:
  - host: www.mywp.com
    http:
      paths:
      - path: /
        pathType: ImplementationSpecific
        backend:
          service:
            name: wp-svc
            port:
              number: 80
## pathType
ImplementationSpecific 系统默认,由IngressClass控制器提供
Exact 精确匹配URL路径,区分大小写
Prefix 匹配URL路径的前缀,区分大小写
暂无评论

发送评论 编辑评论


				
上一篇
下一篇