nosilence 发表于 2018-1-4 23:07:51

centos7下kubernetes(1。kubernetes

  kubernetes官网:https://kubernetes.io/docs/home/
  也是怀着不情愿的心情,要开始kubernetes了,本身是非常热爱技术,尤其是容器技术,可能是最近有点累和懈怠,变得有些懒惰了。
  每每这种情况,我都会去智联招聘搜一下docker。。。。薪资很高,看了具体的招聘要求,差距很大很大,感觉好累啊。只能说学海无涯,回头可能是岸。。。。话不多说了。开始吧
  跑起来~~~
  https://kubernetes.io/docs/tutorials/kubernetes-basics/
https://images2017.cnblogs.com/blog/1205699/201712/1205699-20171218164100912-264515132.png
  左面是教程菜单。
  我们先来创建一个kubernetes集群,感受一下:
https://images2017.cnblogs.com/blog/1205699/201712/1205699-20171218164310725-109922151.png
  显示以下操作界面:
https://images2017.cnblogs.com/blog/1205699/201712/1205699-20171218164457412-110888256.png
  很热情的开始界面
https://images2017.cnblogs.com/blog/1205699/201712/1205699-20171218164539412-1771323346.png
  左边是操作说明,右边是terminal,命令终端口
https://images2017.cnblogs.com/blog/1205699/201712/1205699-20171218165008162-557563419.png
  根据操作说明,我们在terminal中执行minikube start,然后执行kubectl get nodes,这样就创建好了一个单节点的kubernetes集群
  集群的唯一节点为host01,需要注意的是当前执行命令的地方并不是host01.我们是在通过kubernetes的命令行工具远程管理集群
https://images2017.cnblogs.com/blog/1205699/201712/1205699-20171218165513068-1297429180.png
  heapster,kubernetes-dashboard都是集群中运行的服务
  集群就这么创建好了
  kubernetes核心功能
  部署应用:
  kubectl run kubernetes-bootcamp--image=docker.io/jocatalin/kubernetes-bootcamp:v1   --port=8080
https://images2017.cnblogs.com/blog/1205699/201712/1205699-20171219114945975-1309719093.png注:显示的有点不正常
  这里的deployment是kubernetes的一个术语,可以理解为应用。
  kubernetes还有一个重要的术语:Pod
  pod是容器的集合,通常会将紧密相关的一组容器放到一个POd中,同一个Pod中的所有容器共享IP地址和port空间,也就是说他们在一个newwork namespace中
  Pod是kubernetes调度的最小单位,同一Pod中的容器始终被一起调度。
  运行kubectl get pods
https://images2017.cnblogs.com/blog/1205699/201712/1205699-20171219115729053-1584275967.png
  kubernetes-bootcamp-390780338-rsrzj   就是应用的pod
  访问应用:
  默认情况下,所有pod只能在集群内部访问。对于上面这个例子,要访问应用只能直接访问容器的8080端口。为了能从外部访问应用,我们需要将容器的8080端口映射到节点的端口。
  执行如下命令:
  kubectl expose deployment/kubernetes-bootcamp --type="NodePort" --port 8080
https://images2017.cnblogs.com/blog/1205699/201712/1205699-20171219130721771-881596822.png
  执行kubectl get services可以查看应用被映射到那个端口
https://images2017.cnblogs.com/blog/1205699/201712/1205699-20171219130812146-1584628394.png
  这里有两个service
  kubernetes是默认的service,暂时不考虑
  kubernetes-bootcamp是我们应用的service,8080端口已经映射到host01的31068端口,端口号是随机分配的,可以执行如下命令访问应用:
  curl host01:31068
https://images2017.cnblogs.com/blog/1205699/201712/1205699-20171219131326459-1077396363.png
  Scale应用:
  默认情况下只运行一个副本,可以通过kubectl get deployments
https://images2017.cnblogs.com/blog/1205699/201712/1205699-20171219131546209-1426541341.png
  执行以下命令将副本数增加到3个:
  kubectl scale deployments/kubernetes-bootcamp --replicas=3
https://images2017.cnblogs.com/blog/1205699/201712/1205699-20171219131840725-946139121.png
https://images2017.cnblogs.com/blog/1205699/201712/1205699-20171219132009725-975052900.png
  通过curl访问应用:
https://images2017.cnblogs.com/blog/1205699/201712/1205699-20171219132139615-1039391299.png
  可以看到每次请求发送到不同的pod,三个副本轮询处理,这样就实现了负载均衡
  要scale down也很方便,执行命令:
https://images2017.cnblogs.com/blog/1205699/201712/1205699-20171219132541350-735519284.png
https://images2017.cnblogs.com/blog/1205699/201712/1205699-20171219132620990-403941440.png
  滚动更新:
  当前应用使用的image版本为v1,执行如下命令将其升级到v2:
  kubectl set image deployments/kubernetes-bootcamp kubernetes-bootcamp=jocatalin/kubernetes-bootcamp:v2
https://images2017.cnblogs.com/blog/1205699/201712/1205699-20171219133539240-1423253092.png
https://images2017.cnblogs.com/blog/1205699/201712/1205699-20171219133655100-308383927.png
  如果要退回v1版本也很容易,执行kubectl rollout undo
https://images2017.cnblogs.com/blog/1205699/201712/1205699-20171219134157412-2132164225.png
https://images2017.cnblogs.com/blog/1205699/201712/1205699-20171219134604084-788959439.png
  验证版本已经回退到v1
页: [1]
查看完整版本: centos7下kubernetes(1。kubernetes