kubernetes1.4 基础篇:Learn Kubernetes 1.4 by 6 steps(3):Step 2. Using kubectl to Create a Deployment
来源:互联网 发布:台湾淘宝 编辑:程序博客网 时间:2024/04/28 15:17
在上一篇文章中我们学习到了如何快速搭k8s的集群。本文将会将会学到Kubernetes的应用部署(Deployment),以及如何使用kubectl来部署我们的应用。被部署的应用我们将直接使用kubernetes1.4在发布时候所提到的宣称能实现CLI的90%的操作的Dashboard,没有强迫症的话,能够鼠标点击完成的事情为什么一定要使用键盘呢,如果Dashboard很好用的话,这部分不通过敲击键盘来做到对使用者也是一个福音。
我们可以在学习之余体验一下Kubernetes1.4的dashboard是否真的如同其所宣称的那样方便,何乐而不为
Kubernetes基础
什么是Deployment
在Kubernetes中,Deployment是用来负责创建和更新应用程序实例的
为什么要容器化
在Kubernetes中,为了能够被部署,应用程序需要被打包成为其所支持的容器格式(docker/rkt)
Kubernetes Deployment
在上篇文章中,我们创建了一个具有3个node的kubernetes集群.
有了这个集群,接下来我们就可以把容器化了的应用部署到其中了。
首先,我们要创建一个kubernetes的Deployment。这个Deployment是用来负责创建和更新我们应用程序实例的。
而一旦这个应用创建好了之后,Kubernetes的Master会协调在集群的哪个node上俩创建应用实例。
而一旦应用实例被创建之后,Kubernetes的Deployment Controller就会持续的监视这些应用实例。
一旦发生机器故障或者其他不可预知的情况导致应用实例停止时,一直在监视的Deployment Controller就立即知道这一情况,然后它就会重新生成新的应用实例
Kubernetes提供了这种在故障发生时的自愈机制,这个机制也是使用Kubernetes提案的时候反复被背书的能力。
创建Deployment
可以使用Kubernetes的命令行接口kubectl,kubectl只安装在Master上,通过使用kubernetes的API与集群进行交互。
确认版本
命令:kubectl version。 其实我们在安装完成的时候如果你还有印象的话就会记得已经用过这条命令了,其结果显示如下,client和Server均为1.4.1版本
[root@host31 ~]# kubectl versionClient Version: version.Info{Major:"1", Minor:"4", GitVersion:"v1.4.1", GitCommit:"33cf7b9acbb2cb7c9c72a10d6636321fb180b159", GitTreeState:"clean", BuildDate:"2016-10-10T18:19:49Z", GoVersion:"go1.6.3", Compiler:"gc", Platform:"linux/amd64"}Server Version: version.Info{Major:"1", Minor:"4", GitVersion:"v1.4.1", GitCommit:"33cf7b9acbb2cb7c9c72a10d6636321fb180b159", GitTreeState:"clean", BuildDate:"2016-10-10T18:13:36Z", GoVersion:"go1.6.3", Compiler:"gc", Platform:"linux/amd64"}[root@host31 ~]#
确认构成
命令:kubectl get nodes。 通过这条命令我们可以确认到此集群的构成以及各组成node的状态是否都是ready
[root@host31 ~]# kubectl get nodesNAME STATUS AGEhost31 Ready 2hhost32 Ready 1hhost33 Ready 1hhost34 Ready 1h[root@host31 ~]#
创建Deployment
事前准备
可以使用kubectl run的方式创建也可以使用yaml文件+kubectl create的方式进行创建。本次我们采用后者。首先下载一下kubernetes-dashboard.yaml。而这个文件和easypack_kubernetes.sh在同级目录,上篇文章中在git clone取得的时候已经在本地了。
[root@host31 k8s]# pwd/root/easypack/k8s[root@host31 k8s]# lseasypack_kubernetes.sh kubernetes-dashboard.yaml README.md[root@host31 k8s]#
此文件根官方最新文件的不同点仅在于其版本号我们使用的是前面下载下来的1.4.1,现在最新应该已经是1.4.2了。另外还有一点就是imagePullPolicy我们从Always修改成IfNotPresent了。不然,无论如何它都回去pull这个镜像,网络有不允许,基本上kubernetes1.4的安装和使用就只有和这点相关的有些小坑,体验真心不错。
创建
命令: kubectl create -f kubernetes-dashboard.yaml
[root@host31 k8s]# kubectl create -f kubernetes-dashboard.yamldeployment "kubernetes-dashboard" createdservice "kubernetes-dashboard" created[root@host31 k8s]#
可以看到「deployment “kubernetes-dashboard” created」的提示信息,这表明已经成功创建了一个Deployment,同时还有一个service也被创建出来了,至于service在Kubernetes中扮演什么角色, 后续的文章中会专门讲解,此处不再赘述。
确认Deployment
get deployments
使用kubectl get deployments可以列出当前的Deployment及其他信息
[root@host31 k8s]# kubectl get deployments --namespace=kube-systemNAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGEkube-discovery 1 1 1 1 2hkube-dns 1 1 1 1 2hkubernetes-dashboard 1 1 1 1 3m[root@host31 k8s]#
确认Dashboard
命令:kubectl describe svc kubernetes-dashboard –namespace=kube-system
使用此条命令可以确认出该service对外暴露出的可以访问的端口,通过此端口我们可以访问Kubernetes的Dashboard UI界面
[root@host31 k8s]# kubectl describe svc kubernetes-dashboard --namespace=kube-systemName: kubernetes-dashboardNamespace: kube-systemLabels: app=kubernetes-dashboardSelector: app=kubernetes-dashboardType: NodePortIP: 10.4.41.47Port: <unset> 80/TCPNodePort: <unset> 31276/TCPEndpoints: 10.36.0.1:9090Session Affinity: NoneNo events.[root@host31 k8s]#注解:NodePort 31276 为此服务对外暴露的端口号,通过它和IP即可访问Kubernetes1.4的Dashboard了
访问URL:http://192.168.32.31:31276
namespace和node信息,可以清楚地看到其是由4台机器构成的kubernetes集群。
当然号称可以完成cli的90%功能的dashbaord不仅仅限于查看一下构成而已。详细使用方法可以自行探索,此处不再废话。
- kubernetes1.4 基础篇:Learn Kubernetes 1.4 by 6 steps(3):Step 2. Using kubectl to Create a Deployment
- kubernetes1.4 基础篇:Learn Kubernetes 1.4 by 6 steps(2):Step 1. Create a Kubernetes cluster
- kubernetes1.4 基础篇:Learn Kubernetes 1.4 by 6 steps(6):Step 5. Scale Your App
- kubernetes1.4 基础篇:Learn Kubernetes 1.4 by 6 steps(4):Step 3. Explore Your App
- kubernetes1.4 基础篇:Learn Kubernetes 1.4 by 6 steps(5):Step 4. Expose Your App Publicly
- kubernetes1.4 基础篇:Learn Kubernetes 1.4 by 6 steps(7):Step 6. Update Your App
- kubernetes1.4 基础篇:Learn Kubernetes 1.4 by 6 steps(1):概要
- Step by step to create a jQuery tabs plugin - 3
- A Step-by-Step guide to create a simple FPM application using Feeder Class for FORM GUIBB
- Oracle 11g Active Data Guard step by step: How to create a Physical Standby Database using RMAN
- Step by step to create a jQuery tabs plugin - 1
- Step by step to create a jQuery tabs plugin - 2
- Step By Step Guide To Create Physical Standby Database Using RMAN Backup and Restore
- Kubernetes常用命令(kubectl)
- To create a sharepoint list by using powershell
- How to create a maven repository for your github project step by step
- Step By Step Guide To Create Physical Standby Database Using RMAN Backup and Restore (Doc ID 469493.
- Step-By-Step Guide To Create Physical Standby On Normal File System For ASM Primary using RMAN
- JS Array.sort()排序函数
- 电路关键元件讲解
- 第五章 编程练习
- 前端:调试时 导入外部Js到网页
- 第十一章 编译器:代码生成
- kubernetes1.4 基础篇:Learn Kubernetes 1.4 by 6 steps(3):Step 2. Using kubectl to Create a Deployment
- 计算两个时间戳的差
- Knockout <!--ko-->与PartialView
- 百度地图起点与终点的距离计算(有偿求助)
- 勾股定理一日一证连载157
- Maven从零开始_3_Maven依赖
- [Android] AS 中 Gradle 配置运行浅析
- 网易视频云互动直播公测正式启动
- [非旋转Treap 权值线段树] 2016 计蒜之道 初赛 第五场 腾讯的新游戏