k8s学习 - 网络

Pod & Service

Pod与Service的关系:

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

Service 3种常用类型

  1. ClusterIP : 集群内部使用
  2. NodePort : 对外暴露应用
  3. 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

案例:

  1. 先部署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
  1. 对pod创建service
apiVersion: v1
kind: Service
metadata:
  name: web
  namespace: default
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 8080
  selector:
    app: web
  type: NodePort
  1. 创建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
  1. 检查
[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   <none>           <none>
web-6bc4dfc596-mgdjw   1/1     Running   0          43h   10.244.166.153   node1   <none>           <none>

[root@master yaml]# kubectl get svc,ep
NAME                 TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)   AGE
service/kubernetes   ClusterIP   10.96.0.1        <none>        443/TCP   3d23h
service/web          ClusterIP   10.104.105.213   <none>        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   <none>   web.aliangedu.cn             80      42h
  1. 测试
[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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Github下载地址:https://github.com/XLAccount/MiaoBo 项目详解地址:http://www.code4app.com/blog-843201-350.html 快速集成RTMP的视频推流教程:http://www.code4app.com/blog-843201-315.html ffmpeg常用命令操作:http://www.code4app.com/blog-843201-326.html #关于IJKMediaFramework/IJKMediaFramework.h找不到的问题,下载后直接拉到项目中即可 下载地址:https://pan.baidu.com/s/1boPOomN 密码::9yd8 #BUG修复: 解决登录程序偶尔崩溃,修复轮播图片和页面控制器叠加等问题,修复新浪授权登录 (2016.9.7) 解决程序运行中偶尔崩溃问题,解决连续下拉刷新崩溃问题,优化代码 (2016.9.8) 优化直播页面,减少不必要的性能消耗,增加用户体验 (2016.9.11) 适配5s以上的机型除了6sPlus和6Plus延迟较大外,其余延迟都较小,网速好的话可以忽略不计 (2016.9.12) 新版本极大优化程序性能,修复关注数据异常等小问题,重新布局热门页面,减少因反复加载带来的性能消耗 (2016.9.13) 增加个人中心页面,采用下拉放大图片 ➕ 波纹效果 (2016.9.14) ![image text](https://github.com/XLAccount/ALLGIFS/blob/master/psb.gif) 展示图片 ![image](https://github.com/XLAccount/ALLGIFS/blob/master/psb-1.gif) 展示图片 ![image text](https://github.com/XLAccount/ALLGIFS/blob/master/psb-2.gif) 展示图片 ![image text](https://github.com/XLAccount/ALLGIFS/blob/master/psb-3.gif) 展示图片 感谢大神Monkey_ALin http://www.jianshu.com/users/9723687edfb5/latest_articles 的demo支持

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值