栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

k8s学习 - 网络

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

k8s学习 - 网络

service & ingress

Pod & ServiceIngress Controller :案例:

Pod & Service

Pod与Service的关系:

    通过lable-selector关联service实现pod的负载均衡(TCP/UDP )

Service 3种常用类型

    ClusterIP : 集群内部使用NodePort : 对外暴露应用LoadBalancer : 适用公有云,对外暴露应用
apiVersion: v1
kind: Service
metadata:
  labels:
    app: web
  name: web
spec:
  type: ClusterIP
  ports:
  - port: 8080
    protocol: TCP
    targetPort: 80
  selector:
    app: web
Ingress Controller :

项目地址:https://github.com/kubernetes/ingress-nginx

wget  https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v0.46.0/deploy/static/provider/cloud/deploy.yaml

修改如下部分

Ingress Contronler怎么工作的?
Ingress Contronler通过与Kubernetes API 交互,动态的去感知集群中Ingress 规则变化,然后读取它,按照自定义的规则,规则就是写明了哪个域名对应哪个service,生成一段Nginx 配置,应用到管理的Nginx服务,然后热加载生效。
以此来达到Nginx负载均衡器配置及动态更新的问题。

流程包流程:客户端->Ingress Controller(nginx)-> 分布在各节点Pod

案例:
    先部署deployment,创建pod
apiVersion: apps/v1
kind: Deployment
metadata:
  name: web
spec:
  replicas: 1
  selector:
    matchLabels:
      app: web
  template:
    metadata:
      labels:
        app: web
    spec:
      containers:
      - image: nginx:1.17
        name: nginx
    对pod创建service
apiVersion: v1
kind: Service
metadata:
  name: web
  namespace: default
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 8080
  selector:
    app: web
  type: NodePort
    创建ingress绑定service
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: alinagedu
spec:
  rules:
  - host: web.aliangedu.cn
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: web
            port:
              number: 80
    检查
[root@master yaml]# kubectl get pod  -o wide
NAME                   READY   STATUS    RESTARTS   AGE   IP               NODE    NOMINATED NODE   READINESS GATES
web-6bc4dfc596-94xdj   1/1     Running   0          43h   10.244.104.52    node2              
web-6bc4dfc596-mgdjw   1/1     Running   0          43h   10.244.166.153   node1              

[root@master yaml]# kubectl get svc,ep
NAME                 TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)   AGE
service/kubernetes   ClusterIP   10.96.0.1                443/TCP   3d23h
service/web          ClusterIP   10.104.105.213           80/TCP    43h

NAME                   ENDPOINTS                            AGE
endpoints/kubernetes   172.16.10.60:6443                    3d23h
endpoints/web          10.244.104.52:80,10.244.166.153:80   43h

[root@master yaml]# kubectl get ingress
NAME        CLASS    HOSTS              ADDRESS   PORTS   AGE
alinagedu      web.aliangedu.cn             80      42h
    测试
[root@localhost ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
172.16.10.110 csdharbor.com
172.16.10.62 web.aliangedu.cn

[root@localhost ~]# curl web.aliangedu.cn
myapp-v2
[root@localhost ~]# curl web.aliangedu.cn
myapp-v2
[root@localhost ~]# curl web.aliangedu.cn
myapp-v1
[root@localhost ~]# curl web.aliangedu.cn
myapp-v2
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/778738.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号