在kubernetes集群中,假设我们需要部署一个nginx,那么这个nginx就是一个kubernetes对象。假如我们需要部署一个mysql,那么这个mysql也是一个对象。所以总的谁来,在kubernetes集群中,我们需要部署什么内容,这个内容就是一个对象。这个对象可以是一个有状态的服务,例如:mysql等,也可以使一个无状态的服务,例如nginx等。
在kubernetes中,我们如何部署一个对象呢? 其实很简单,目前对于我来说主要有两种,一种是使用kuboard进行页面可视化部署,另外一种就是大家常见的使用yaml文件进行部署。使用kuboard可视化页面进行部署我们在前面已经演示过了,后期在进行其他演示的时候,我们也会使用此方式。可以看看具体前面和后面关于kuboard的文章。
在这里我们说说另外的一种方式,也是大家使用非常多的一种模式,即通过yaml文件的方式进行部署。下面我们来演示一下。
前提:这里我们假设需要部署一个nginx,副本数为1。那么此时我们需要做的是:
一、创建一个新的yaml文件
mkdir -p /mbt/kuboard/deployment/nginx cd /mbt/kuboard/deployment/nginx touch nginx.yaml
二、把如下内容粘贴到nginx.yaml文件里面去
apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment spec: selector: matchLabels: app: nginx replicas: 1 # 运行 1 个容器化应用程序副本 template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:1.7.9 ports: - containerPort: 80
三、使用命令创建一个nginx对象
kubectl apply -f /mbt/kuboard/deployment/nginx/nginx.yaml
此时我们就可以看到命令行有显示 xxxxx created即代表nginx创建成功了。此时我们可以直接内部访问下nginx即可
四、如何删除刚才创建的nginx对象呢?
kubectl delete -f /mbt/kuboard/deployment/nginx/nginx.yaml
此时我们再访问nginx,已经访问不到了。
备注:
1、采用文件的方式创建一个对象我们后面可以直接写当前服务器的文件路径,也可以直接填写一个互联网http地址,例如:https://www.baidu.com/aaa/nginx.yaml 一般生产环境我们建议采用互联网http地址。
2、关于文件里面的字段含义解释下:
1、apiVersion 用来创建对象时所使用的Kubernetes API版本 2、kind 被创建对象的类型 3、metadata 用于唯一确定该对象的元数据:包括 name 和 namespace,如果 namespace 为空,则默认值为 default 4、spec 描述您对该对象的期望状态
还没有评论,来说两句吧...