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
本文来自博客园,作者:{春光牛牛,yak},转载请注明原文链接:https://www.cnblogs.com/yakniu/p/16450597.html
欢迎各位大佬们评论指正
QQ讨论群:610129902