zoukankan      html  css  js  c++  java
  • 一天学习k8s

     https://ke.qq.com/webcourse/index.html#cid=366778&term_id=100436087&taid=3842496786700474

    k8s集群的节点

     命名空间

     

     容器组就是pod

     

     

     

     

     

     一个pod中定义了两个容器

     

     进入到my-pod中国的名称为java的容器

     pod与控制器的关系

     

     

     

     控制器中国的app标签要和pod中的app名称一致,这样控制器好关联对应标签的pod

    pod创建成功之后,我们要暴露pod让外部访问,外部访问是通过service访问内部pod的

     

     deployment中部署的应用名称为web,service暴露的应用名称也是web,service对外暴露的端口是80,pod中部署的应用端口为8080.暴露的类型为nodeport会随机的为在node节点上面为service生成一个ip地址和端口

    对于的ymal文件如下

    service创建成功之后,我们可以查看service

     在k8s集群上面就随机为service创建了一个ip和端口,如果要通体k8s的node节点的IP地址访问pod,需要使用32672端口

    192.168.31.63是k8snode的IP,32672是对于的端口

     

     

     扩容web这个应用的pod,这里pod扩容也依赖k8s的node节点的资源

     

     

     在微服务中部署一个应用就对应一个service,一个service下面存在多个pod

    service和pod进行关联,在service的yaml中可以看到

     service与pod的关联是通过tcp在7层进行负载均衡的

     第一ClusterIp:就是为service生成一个虚拟的IP地址和端口,例如10.0.0.1:8080,通过这个统一的地址和端口负载均衡到内部的pod

    第二种是Nodeport:会为k8s的节点生成一个端口,外部必须使用节点的IP加上生产的端口访问,访问该节点下面部署的pod,

     

     这里使用NodePort类型也会生成一个cluster-ip 10.10.0.15,集群内部访问就是可以使用10.0.0.15加上service的80端口只能在k8s的节点上访问,只能登录k8s的集群内部在集群内部访问,访问集群内部的pod

    如果集群外部要访问就只能使用k8s节点的地址如192.168.7.18:32385这个地址来访问节点下面的pod

     service底层访问pod底层是通过linux底层的iptables来实现pod访问的负载均衡的,当pod有变动的时候,都会更新iptables会影响service的性能,后面又引入了ipvs,service底层的代码位于kuber-proy组件来实现的

  • 相关阅读:
    Cat- Linux必学的60个命令
    Cmp- Linux必学的60个命令
    Diff- Linux必学的60个命令
    ls- Linux必学的60个命令
    mv- Linux必学的60个命令
    Find- Linux必学的60个命令
    libvirt
    PHP 设计模式 笔记与总结(2)开发 PSR-0 的基础框架
    Java实现 LeetCode 147 对链表进行插入排序
    Java实现 LeetCode 146 LRU缓存机制
  • 原文地址:https://www.cnblogs.com/kebibuluan/p/13233382.html
Copyright © 2011-2022 走看看