zoukankan      html  css  js  c++  java
  • k8s对资源的管理方式

    一、描述

    k8s一般在对对象进行管理的时候,一般又三种常见操作,分别为命令式对象管理、命令式对象配置、申明式对象配置。

    命令式对象管理操作简单,操作的是对象,但是不方便审计,

    kubectl   run  nginx-pod --image=nginx:1.17.1  --port=80

    命令式对象配置,简单说就是把命令式管理的一些参数写到一个配置文件里,可以审计,一般操作的对象是文件,但是如果项目很大时,配置文件多,操作麻烦;

    kubectl   create/delete/patch  -f  nginx-pod.yaml

    申明式对象配置,只能用于创建和更新资源,不对进行其它操作,可以对目录操作,比如把很多个yaml文件放到一个目录里,进行全部操作,很方便,如果出现错误难以排查

    kubectl  apply -f nginx-pod.yaml

    二、命令式对象管理

    kubectl是kubernetes集群的命令行工具,通过它能对集群本身进行管理,并能够在集群上对容器化应用的安装部署,一般语法如下

    kubectl   [command]   [type]    [name]  [flags]

    command:指定要对资源执行的操作,如create、get 、 delete 等

    type:指定资源类型,如pod、service、deployment

    name:指定资源的名称,大小写敏感

    flags:指定额外的可选参数

    command的常用命令如下:

     type:资源类型

    除了有pod、service、deployment其实还有很多,可以通过kubectl api-resources查看

    常用的资源有如下资源

     实操:

    1、运行一个名为nginx-dev的pod的nginx,版本是1.17.1

    [root@master ~]# kubectl run nginx-dev --image=nginx:1.17.1 --port=80
    pod/nginx-dev created

    2、查询所有的pod

    [root@master ~]# kubectl get pod
    NAME                      READY   STATUS    RESTARTS   AGE
    nginx-7cbb8cd5d8-vpkgt    1/1     Running   0          4m39s
    nginx-dev                 1/1     Running   0          2m46s
    nginx-pod                 1/1     Running   0          10m
    tomcat-6fb574f6dd-dmjkp   1/1     Running   0          3h36m
    

    3、查询指定的pod

    [root@master ~]# kubectl  get pod nginx-dev
    NAME        READY   STATUS    RESTARTS   AGE
    nginx-dev   1/1     Running   0          3m36s
    

    4、创建一个namespaces

    [root@master ~]# kubectl create ns test
    namespace/test created
    

    5、查询一个指定名字的namespaces

    [root@master ~]# kubectl  get ns  test 
    NAME   STATUS   AGE
    test   Active   84s
    

    6、指定一个pod运行在namespaces为test下

    [root@master ~]# kubectl run nginx-1 --image=nginx:1.17.1 --port=80  -n test
    pod/nginx-1 created
    [root@master ~]# 
    [root@master ~]# 
    [root@master ~]# 
    [root@master ~]# kubectl  get pod
    NAME                      READY   STATUS    RESTARTS   AGE
    nginx-7cbb8cd5d8-vpkgt    1/1     Running   0          15m
    nginx-dev                 1/1     Running   0          13m
    nginx-pod                 1/1     Running   0          20m
    tomcat-6fb574f6dd-dmjkp   1/1     Running   0          3h47m
    [root@master ~]# 
    [root@master ~]# 
    [root@master ~]# kubectl  get pod  -n  test
    NAME      READY   STATUS    RESTARTS   AGE
    nginx-1   1/1     Running   0          82s
    
    
    默认查询是只显示default的namespaces下的pod,要显示指定的namespaces 需要加上-n参数
    

    7、删除一个pod

    [root@master ~]# kubectl  get pod  -n  dev
    No resources found in dev namespace.
    [root@master ~]# 
    [root@master ~]# kubectl  get pod  -n test
    NAME      READY   STATUS    RESTARTS   AGE
    nginx-1   1/1     Running   0          7m56s
    [root@master ~]# 
    [root@master ~]# kubectl delete pod nginx-1
    Error from server (NotFound): pods "nginx-1" not found
    [root@master ~]# 
    [root@master ~]# kubectl delete pod nginx-1 -n test
    pod "nginx-1" deleted
    
    
    默认删除的是default的namespaces下的pod   需要用-n参数指定pod所在的namespaces

     三、命令式对象配置

    命令是对象配置只是把一些参数写到了配置文件中,下面来写一个nginx的yaml文件

    [root@master ~]# cat nginx-pod-123.yaml 
    apiVersion: v1
    kind: Namespace
    metadata:
      name: dev
    
    
    ---
    apiVersion: v1
    kind: Pod
    metadata:
      name: nginx-pod-123
      namespace: dev
    spec:
      containers:
      - name: nginx-containers
        image: nginx:1.17.1

     指定yaml文件创建pod

    [root@master ~]# kubectl   create -f nginx-pod-123.yaml 
    namespace/dev created
    pod/nginx-pod-123 created
    [root@master ~]# 
    [root@master ~]# kubectl  get pod
    NAME                      READY   STATUS    RESTARTS   AGE
    nginx-7cbb8cd5d8-vpkgt    1/1     Running   0          36m
    nginx-pod                 1/1     Running   0          41m
    tomcat-6fb574f6dd-dmjkp   1/1     Running   0          4h7m
    [root@master ~]# 
    [root@master ~]# kubectl  get pod -n dev
    NAME            READY   STATUS    RESTARTS   AGE
    nginx-pod-123   1/1     Running   0          25s

    四、声明式对象配置

    声明式对象配置和前面的命令式对象配置差不多,只是yaml文件有变化才更新,没有变化就不更新

    [root@master ~]# kubectl  apply -f nginx-pod-123.yaml 
    namespace/dev unchanged
    pod/nginx-pod-123 configured
    [root@master ~]# 
    [root@master ~]# kubectl  apply -f nginx-pod-123.yaml 
    namespace/dev unchanged
    pod/nginx-pod-123 unchanged
    

      

    作者:凉生墨客 本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    这是一棵树吗
    感染者
    es6 语法
    css3 flex 详解,可以实现div内容水平垂直居中
    移动端实现复制内容至剪贴板小例子
    jq+mui 阻止事件冒泡
    移动端H5 判断IOS还是Android 平台
    移动端布局 rem,和px
    关于H5移动端开发 iPhone X适配
    H5 微信公众号 监听返回事件
  • 原文地址:https://www.cnblogs.com/heruiguo/p/15723440.html
Copyright © 2011-2022 走看看