K8S常用的命令

本实践是在使用Kind构建K8S环境下的。

kubectl的命令可分为三类:

  • 1.陈述式命令(命令式对象管理) 类似于我们直接在docker 中 docker run 命令
  • 2.陈述式对象配置(命令式对象配置) 类似于类似于 docker-compose.yml
  • 3.声明式对象配置(声明式对象配置)

kubectl命令的语法如下:

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

  • comand:指定要对资源执行的操作,例如create、 get、delete
  • type:指定资源类型,比如deployment、pod、 service
  • name:指定资源的名称,名称大小写敏感
  • flags:指定额外的可选参数

1.kubectl get nodes —查询k8s集群节点

2.kubectl get pod —查看所有的pod

 

  其中test是命名空间test

3.kubectl describe pod mysql-deployment-69d864cbc7-tl484  -n test --查看pod详细内容

 

  其中test是命名空间

4.kubectl cluster-info —查看k8s 集群的信息

5.kubectl version 查看当前k8s 集群的版本

 

陈述式命令(命令式对象管理)

我们可以通过陈述式命令(命令式对象管理) 对namespace/pod操作;常用的陈述式命令整理如下:

1.命令形式创建一个namespace

kubectl create namespace udiannet-dev

2.查询所有的namespace

kubectl get ns

  

3.在udiannet-dev的namespace 下运行一个pod

kubectl run pod --image=nginx -n udiannet-dev

 

4.查看udiannet-dev下的pod,要指定namespace,如果不指定namespace,那么就会去查询默认namespace下面的pod

kubectl get pod -n udiannet-dev

  

5.查看该pod的详细信息(要制定namespace)

kubectl describe pod pod -n udiannet-dev

  

6.删除该pod(要指定namespace)


kubectl delete pods pod -n udiannet-dev

 

但是我们说此时这样删除pod是没有用的,因为namespace里面会有一个pod控制器Deployment,当namespace里面的pod被删除的时候,pod控制器就会帮忙创建一个新的pod,这就是我们说的kubernetes的自我修复功能。如果要讲pod彻底删除,要怎么操作呢?我们应该通过删除命名空间,则自动会将这些pod删除。
kubectl delete ns udiannet-dev

  

查看该命名空间下pod 已经没有该pod了

  

7.删除namespace

kubectl delete ns test

 

 删除了命名空间test

 

命令式对象配置

命令式对象配置就是使用命令配合配置文件一起来操作k8s资源 类似于我们学习的docker-compose 定义 yml 配置文件 需要对yaml 配置有一定了解。

  • kubectl create -f udiannet-pod.yml 创建资源
  • kubectl delete -f udiannet-pod.yml 删除资源
  • kubectl get-f udiannet-pod.yml

1.创建udiannet-pod.yml

apiVersion: v1
kind: Namespace
metadata:
  name: udiannet-dev    #指定的Namespace空间名称 

---

apiVersion: v1
kind: Pod
metadata:
  name: udiannet-nginx-pod    #指定pod的名称
  namespace: udiannet-dev  #指定该pod对应的Namespace
spec:
  containers: 
  - name: udiannet-nginx-container #运行一个nginx容器
    image: nginx:1.17.9  #指定镜像的名称

  

2. 上传到服务器端


 

3. 执行kubectl create -f udiannet-pod.yml

 

创建成功 自动创建Namespace udiannet-dev和 pod udiannet-nginx-pod


4. 执行 kubectl get ns查看当前容器中的namespace

  

5. 执行 kubectl get pods -n udiannet-dev查看udiannet-dev namespace里面的pod信息

  

6. 查看该pod详细信息

kubectl describe pod udiannet-nginx-pod -n udiannet-dev

 

  

7. 执行get命令,查看资源

 kubectl get -f udiannet-pod.yml

 

  

8. 删除delete 命令 

kubectl delete -f udiannet-pod.yml

  

 

9. 执行 kubectl get ns

udiannet-dev这个namespace就被删掉了

  

 

 

 

 

声明式对象配置

声明式对象配置跟命令式对象配置很类似,通过命令apply,还是使用刚才上传的udiannet-pod.yml文件

 

1. 执行:kubectl apply -f udiannet-pod.yml

  

2. 查看 pod: kubectl get pods -n udiannet-dev

  

3. 查看pod 详细信息:

kubectl describe pod udiannet-nginx-pod -n udiannet-dev

 

  

以上就是kubernetes常用的一些命令!

鸣谢:

https://blog.csdn.net/qq_33313357/article/details/123274532

 

posted @ 2022-07-06 14:06  春光牛牛  阅读(672)  评论(0编辑  收藏  举报