kubectl常用的命令

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:指定额外的可选参数

下面开始列出kubernetes一些经常用到的命令:
1.kubectl get nodes —查询k8s集群节点
在这里插入图片描述
2.kubectl get pod —查看所有的pod
在这里插入图片描述
3.kubectl describe pod nginx-6867cdf567-ht2bz --查看pod详细内容
在这里插入图片描述
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-864f9875b9-492tz -n udiannet-dev
在这里插入图片描述
6.删除该pod(要指定namespace)
kubectl delete pods pod-864f9875b9-492tz -n udiannet-dev
在这里插入图片描述
但是我们说此时这样删除pod是没有用的,因为namespace里面会有一个pod控制器Deployment,当namespace里面的pod被删除的时候,pod控制器就会帮忙创建一个新的pod,这就是我们说的kubernetes的自我修复功能。如果要讲pod彻底删除,要怎么操作呢?我们应该通过删除命名空间,则自动会将这些pod删除。
kubectl delete ns udiannet-dev
在这里插入图片描述
查看该命名空间下pod 已经没有该pod了
在这里插入图片描述

命令式对象配置

命令式对象配置就是使用命令配合配置文件一起来操作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  #指定镜像的名称

上传到服务器端
/usr/local 创建一个 udiannet来演示我们的

cd /usr/local
mkdir udiannet
在这里插入图片描述

执行kubectl create -f udiannet-pod.yml
在这里插入图片描述
创建成功 自动创建Namespace udiannet-dev和 pod udiannet-nginx-pod
执行 kubectl get ns查看当前容器中的namespace
在这里插入图片描述
执行 kubectl get pods -n udiannet-dev查看udiannet-dev namespace里面的pod信息
在这里插入图片描述
查看该pod详细信息 kubectl describe pod udiannet-nginx-pod -n udiannet-dev
在这里插入图片描述
执行get命令,查看资源 kubectl get -f udiannet-pod.yml
在这里插入图片描述
删除delete 命令 kubectl delete -f udiannet-pod.yml
在这里插入图片描述
执行 kubectl get ns,udiannet-dev这个namespace就被删掉了
在这里插入图片描述

声明式对象配置

声明式对象配置跟命令式对象配置很类似,通过命令apply
kubectl apply -f udiannet-pod1.yml
在创建一个udiannet-pod1.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  #指定镜像的名称

执行:kubectl apply -f udiannet-pod1.yml
在这里插入图片描述
查看 pod: kubectl get pods -n udiannet-dev
在这里插入图片描述
查看pod 详细信息:kubectl describe pod udiannet-nginx-pod -n udiannet-dev
在这里插入图片描述
以上就是kubernetes常用的一些命令!谢谢观看!

Logo

开源、云原生的融合云平台

更多推荐