1.1 先跑起来

  k8s官网已经为大家准备好了一个现成的最小可用系统。

   https://kubernetes.io/docs/tutorials/kubernetes-basics/

1.2 创建K8s集群

  https://kubernetes.io/docs/tutorials/kubernetes-basics/create-cluster/cluster-interactive/

  全屏后就是一个模拟的linux系统。

  kubectl get nodes

  kubectl get pods

  kubectl cluster-info            // 查看集群信息

  kubectl cluster-info dump // 集群详细信息

1.3 部署应用

  kubectl run --help :  这个命令用来部署一个应用

  kubectl run kubernetes-bootcamp --image=docker.io/jocatalin/kubernetes-bootcamp:v1 --port=8080            // 启动pod

  --image: 指定镜像。

  --port : 设置应用对外服务的端口。

  pod:  紧密相关的一组容器放到一个Pod中,同一个Pod中的容器共享IP地址和Port空间。

上面命令运行后:使用    kubectl get deployment

                     NAME                     DESIRED          CURRENT        UP-TO-DATE            AVAILABLE            AGE
                   kubernetes-bootcamp     1                   1                           1                             1                            11s

1.4  访问应用

  默认情况下,所有Pod只能在集群内部访问。对于上边的例子,要访问应用只能直接访问8080端口。为了能从外部访问应用,我们需要将容器的

8080端口映射到节点的端口。

  kubectl expose        // 将资源(deployment、service、replica setreplication controllerpod )暴露为新的Kubernetes Service。并使用该资源的选择器作

为指定端口上新服务的选择器。

    kubectl expose deployment/kubernetes-bootcamp --type="NodePort" --port=8080
      service/kubernetes-bootcamp exposed

然后查看services:

$ kubectl get services
  NAME                                 TYPE       CLUSTER-IP      EXTERNAL-IP     PORT(S)          AGE
  kubernetes                          ClusterIP      10.96.0.1           <none>                 443/TCP         10m
  kubernetes-bootcamp          NodePort   10.108.24.178    <none>          8080:31385/TCP    2m

NodePort:   表示外界可以通过访问node port 的31385(这个是随机的)访问这个服务。

 Service:可以暂时理解为端口映射。

  $ hostname                                // 查看当前的host name
   minikube
  $ curl minikube:31385              // 访问服务
           Hello Kubernetes bootcamp! | Running on: kubernetes-bootcamp-56cdd766d-rwrs6 | v=1

 1.5 scale 应用

  $ kubectl scale deployments/kubernetes-bootcamp --replicas=3           // 增加副本数量
    deployment.extensions/kubernetes-bootcamp scaled
  $ kubectl get deployment
    NAME                              DESIRED     CURRENT   UP-TO-DATE  AVAILABLE   AGE
    kubernetes-bootcamp              3                  3                 3                     3                19m

  这个时候再看

    kubectl get pods, 发现是三个pods在运行:
      NAME                                                   READY              STATUS               RESTARTS                     AGE
kubernetes-bootcamp-56cdd766d-jfhgh                     1/1                    Running                      0                                 2m
kubernetes-bootcamp-56cdd766d-m2df7                   1/1                    Running                      0                                 2m
kubernetes-bootcamp-56cdd766d-rwrs6                    1/1                    Running                      0                                 22m

然后再访问service:  发现后端的请求被打散到不同的容器,这样就实现了负载均衡。

  $ curl minikube:31385
    Hello Kubernetes bootcamp! | Running on: kubernetes-bootcamp-56cdd766d-jfhgh | v=1
  $ curl minikube:31385
    Hello Kubernetes bootcamp! | Running on: kubernetes-bootcamp-56cdd766d-jfhgh | v=1
  $ curl minikube:31385
    Hello Kubernetes bootcamp! | Running on: kubernetes-bootcamp-56cdd766d-m2df7 | v=1
  $ curl minikube:31385
    Hello Kubernetes bootcamp! | Running on: kubernetes-bootcamp-56cdd766d-jfhgh | v=1
  $ curl minikube:31385
    Hello Kubernetes bootcamp! | Running on: kubernetes-bootcamp-56cdd766d-m2df7 | v=1

1.6 滚动更新(rolling update)

  当前使用image的版本为v1, 执行如下命令将其升级到v2:

  $ kubectl set image deployments/kubernetes-bootcamp kubernetes-bootcamp=jocatalin/kubernetes-bootcamp:v2
    deployment.extensions/kubernetes-bootcamp image updated

上面的更改立即生效,pod会逐渐被清除,新的pod逐渐启动。

   要想回退到原来的版本: kubectl rollout undo deployments/kubernetes-bootcamp

  

    

第一章 先把Kubernetes跑起来的更多相关文章

  1. [转] VS2015中跑OpenGL红宝书第八版的第一章示例代码,运行

    Ori Article Link OpenGL的东西快忘光了,把角落的第八版红宝书拿出来复习一下 从书中的地址下了个示例代码结果新系统(Win10+VS2015)各种跑不起来,懊恼之后在网上疯狂搜索资 ...

  2. 第一章 Kubernetes入门

    第一章 Kubernetes入门 kubernetes是基于容器技术的分布式架构领先方案,是一个完备的分布式系统支撑平台. kubernetes带来的好处:1)全面拥抱微服务:2)统可以随时随地整体“ ...

  3. 白话SpringCloud | 第一章:什么是SpringCloud

    前言 作为SpringCloud的正式第一章,我们先来简单了解下SpringCloud相关知识点吧,内容可能比较多. 何为微服务 传统单体架构 服务化架构 微服务架构 什么是SpringCloud 核 ...

  4. 日暮·第一章·决斗

    日暮 第一章 决斗   泉州府,位于帝国的东南沿海,在数百年前,这里已是帝国最大的通商口岸之一,其一城之繁荣喧哗足以与异邦小国的都城相媲美,无数的人曾经来到这里,追逐财富,梦想,女人以及所有他们认为可 ...

  5. PRML读书会第一章 Introduction(机器学习基本概念、学习理论、模型选择、维灾等)

    主讲人 常象宇 大家好,我是likrain,本来我和网神说的是我可以作为机动,大家不想讲哪里我可以试试,结果大家不想讲第一章.估计都是大神觉得第一章比较简单,所以就由我来吧.我的背景是统计与数学,稍懂 ...

  6. 翻译学python---《Learn Python the hard Way》---第一章 绪论

    打算学习python,但是又不想单纯地看书或是写个小项目,干脆引入很流行的翻译学习法来学习吧-         在论坛上看到了国外的一本<Learn Python the hard Way> ...

  7. 第一章、C#委托和事件(Delegate、Event、EventHandler、EventArgs)

    第一章.C#委托和事件(Delegate.Event.EventHandler.EventArgs) 分类: 学习笔记-C#网络编程2012-12-08 14:10 7417人阅读 评论(3) 收藏  ...

  8. 按照鬼哥学so变化,四,第一章的例子

    跟随鬼哥伦比亚科学so变化,四.第一章的例子 图纸/文化  听鬼哥说故事 ---------------------------------------------切割线--------------- ...

  9. (第一章)对程序员来说CPU是什么

    这几天,看到一本书,<程序是怎么跑起来的>,觉得之前都没有完整的看完一本书,现在要从这本书开始,慢慢的培养自己写读书笔记的习惯,不能度过去就忘了. 学习是一个螺旋上升的过程,不要指望一下子 ...

随机推荐

  1. Elasticsearch 在分布式系统中深度分页问题

    理解为什么深度分页是有问题的,我们可以假设在一个有 5 个主分片的索引中搜索. 当我们请求结果的第一页(结果从 1 到 10 ),每一个分片产生前 10 的结果,并且返回给 协调节点 ,协调节点对 5 ...

  2. Linux设备驱动——简单的字符驱动

    本文介绍Linux字符设备的静态注册方法, 其中涉及到的模块加载,不了解的可以先参考 构建和运行模块 1. 还是线上源代码: //memdev.h #ifndef _MEMDEV_H_ #define ...

  3. selenium-java,cookie登陆

    方法 public void login(WebDriver WebDriver,String cookie1[],String cookie2[]) throws ParseException{// ...

  4. ueditor使用小结【来源网络】

    原文地址:http://www.cnblogs.com/janes/p/5072496.html ueditor是百度编辑器,官网地址:http://ueditor.baidu.com/website ...

  5. java运行jar命令提示没有主清单属性和找不到主类

    推荐一个java运行jar命令提示没有主清单属性的百度经验的链接:https://jingyan.baidu.com/article/db55b60990f6084ba30a2fb8.html jav ...

  6. BZOJ2152 聪聪可可 【点分治】

    BZOJ2152 聪聪可可 Description 聪聪和可可是兄弟俩,他们俩经常为了一些琐事打起来,例如家中只剩下最后一根冰棍而两人都想吃.两个人都想玩儿电脑(可是他们家只有一台电脑)--遇到这种问 ...

  7. ssh/scp免密码登录传输

    # 本地服务器生成key(直接回车默认) ssh-keygen # 将key传输到要登录的服务器 ssh-copy-id -i /root/.ssh/id_rsa.pub root@IP地址 # 输入 ...

  8. 禁止别人用QQ号搜索到你,同时告诉你如何破解

    禁止他人用QQ号搜索到我们 举例说明:现在查找自己的QQ号,是可以通过搜索查找到的. 怎么禁止别人搜索到我们呢? 1.打开QQ面板,点击我们的头像. 2.在我们的昵称旁边,有一个小的按钮,点击它可以更 ...

  9. windows常用的命令行操作

    1.切换当前目录 cd 路径 --change directory 2.创建目录 mkdir ‘文件名’ --make directory touch '文件名' --创建文件(多个文件用,分隔) 3 ...

  10. 【requirejs】JS模块化工具requirejs教程

    初识requirejs 随着网站功能逐渐丰富,网页中的js也变得越来越复杂和臃肿,原有通过script标签来导入一个个的js文件这种方式已经不能满足现在互联网开发模式,我们需要团队协作.模块复用.单元 ...