BenjaminYang In solitude, where we are least alone

k8s创建资源的两种方式

命令 vs 配置文件

Kubernetes 支持两种方式创建资源:

1. 用 kubectl 命令直接创建

kubectl run nginx-deployment --image=nginx:1.7.9 --replicas=2

 

在命令行中通过参数指定资源的属性。

2. 通过配置文件和 kubectl apply 创建

要完成前面同样的工作,可执行命令:

[root@k8s-master k8s]# kubectl apply -f nginx.yaml
deployment.extensions/nginx-deployment configured

 

3.nginx.yml 的内容说明

apiVersion: extensions/v1beta1 #api的版本
kind: Deployment          #资源的类型
metadata:                 #资源的元数据
  name: nginx-deployment  #资源的名称
spec:                     #资源的说明
  replicas: 2             #副本2个,缺省为1
  template:               #pod模板
    metadata:             #pod元数据
      labels:            #标签
        app: web_server    #标签选择器
    spec:
      containers:
      - name: nginx
        image: nginx:1.79

 

资源的属性写在配置文件中,文件格式为 YAML。

 这种配置文件对格式的要求极为严格,缩进不能错,空格不能少打,vim编辑器的高亮提示会对我们写配置文件有帮助,如果语法错误会检测到。

 

4.这两种方式进行比较

基于命令的方式:

  1. 简单直观快捷,上手快。

  2. 适合临时测试或实验。

基于配置文件的方式:

  1. 配置文件描述了 What,即应用最终要达到的状态。

  2. 配置文件提供了创建资源的模板,能够重复部署。

  3. 可以像管理代码一样管理部署。

  4. 适合正式的、跨环境的、规模化部署。

  5. 这种方式要求熟悉配置文件的语法,有一定难度。

 

kubectl apply 不但能够创建 Kubernetes 资源,也能对资源进行更新,非常方便。不过 Kubernets 还提供了几个类似的命令,例如 kubectl createkubectl replacekubectl edit 和 kubectl patch

为避免造成不必要的困扰,我们会尽量只使用 kubectl apply
此命令已经能够应对超过 90% 的场景,事半功倍。

 

5.资源的删除

配置文件创建的资源 也可以用之前的方式删除

[root@k8s-master k8s]# kubectl apply -f  nginx.yaml  
deployment.extensions/nginx-deployment created

指定配置删除

[root@k8s-master k8s]# kubectl delete -f  nginx.yaml      
deployment.extensions "nginx-deployment" deleted

 

posted @ 2018-11-03 12:48  benjamin杨  阅读(4756)  评论(0编辑  收藏  举报