Kubernetes学习 Service + Rolling Update(三)

四、外网如何访问Service

  除了 Cluster 内部可以访问 Service,很多情况下我们也希望应用的 Service 能够暴露给 Cluster 外部。Kubernetes 提供多种类型的 Service,默认是 Cluster IP。

      (1)Cluster IP

      Service 通过 Cluster 内部的 IP 对外提供服务,只有 Cluster 内部的节点和 Pod 可访问,这是默认的 Service 类型,前面实验中的 Service 都是 CLuster IP。

    (2)NodePort

      Service 通过 Cluster 节点的静态端口对外提供服务。Cluster 外部可以通过 <NodeIP>:<NodePort> 访问 Service

    (3)LoadBalancer

      Service 利用 cloud provider 特有的 load balancer 对外提供服务,cloud provider 负责将 cload balancer 的流量导向 Service。目前支持的 cloud providerGCP、AWS、Azur等。

五、回滚

    kubectl apply 每次更新应用时, Kubernetes 都会记录下当前的位置保存为一个 revision。

    默认配置下,Kubernetes 只会保留最近几个 revision,可以在 Deployment 配置文件中通过 revisionHistoryLimit 属性增加 revision。

    实践回滚功能:

      应用有三个文件,即httpd.v1.yaml、httpd.v2.yaml、httpd.yaml 分别对应着 httpd 的三个版本 2.4.16、2.4.17、2.4.18。

                   

      kubectl apply -f httpd.v1.yaml --record

       --record 的作用是将当前命令记录到 revision 记录中,这样我们就能知道每个revision 对应是哪个配置文件了。

      通过 kubectl rollout history deployment httpd ,查看 revision。

      

      CHANGE-CAUSE 就是 --record 的结果。如果要回滚到某个版本,譬如 revision3,

      执行命令 kubectl rollout undo deployment httpd --to-revision=3

      

      

      

      

 

 

posted @ 2019-01-16 23:48  console.log('宇航')  阅读(175)  评论(0编辑  收藏  举报