k8s和k3s常用命令笔记
kubectl
常用命令
创建命令
- +create
- apply
- run
- set
操作命令
- get
- edit
- delete
查看命令
- describe
- exec
- logs
可选参数
-n
--namespaces
不加命名空间默认default命名空间
使用命令示例
资源操作
其他资源deployment、service、job等与pod操作一样
创建pod
默认是创建pod,其他资源可以增加相应名称,
job
、deployment
、service
等kubectl create -f {filename}
示例
kubectl create -f ./pod.json
创建pod并启动指定容器
kubectl run {pod-name} --image={image-name}
示例
kubectl run nginx --image=nginx
声明式创建pod
kubectl apply (-f {filename} | -k {directory})
示例
kubectl apply -f ./pod.json
查看pod
kubectl get pod {pod-name} -n {namespace}
示例
查看一个pod
kubectl get pods metrics-server-6d684c7b5-n9zr4
查询所有pod
kubectl get pods
查看pod详情
kubectl describe pods {pod-name}
示例
kubectl describe pods metrics-server-6d684c7b5-n9zr4
查看pod内容器日志
kubectl logs {pod-name} -c {container-name}
示例
如果pod只有一个容器可以省略容器名
kubectl logs metrics-server-6d684c7b5-n9zr4
在Pod容器内执行命令
kubectl exec {pod-name} -c {container-name} [-it] -- {command}
示例
如果pod只有一个容器可以省略容器名
kubectl exec metrics-server-6d684c7b5-n9zr4 -it -- /bin/bash
重启pod
方法一
有最新的 yaml 文件。
在有 yaml 文件的情况下可以直接使用
kubectl replace --force -f xxxx.yaml
来强制替换Pod 的 API 对象,从而达到重启的目的方法二
没有 yaml 文件,但是使用的是 Deployment 对象。
kubectl scale deployment esb-admin --replicas=0
kubectl scale deployment esb-admin --replicas=1
由于 Deployment 对象并不是直接操控的 Pod 对象,而是操控的 ReplicaSet 对象,而 ReplicaSet 对象就是由副本的数目的定义和Pod 模板组成的。所以这条命令分别是将ReplicaSet 的数量 scale 到 0,然后又 scale 到 1,那么 Pod 也就重启了。
方法三
kubectl delete pod {podname}
这个方法就很简单粗暴了,直接把 Pod 删除,因为 Kubernetes 是声明式 API,所以删掉了之后,Pod API 对象就与预期的不一致了,所以会自动重新创建 Pod 保持与预期一致,但是如果ReplicaSet 管理的 Pod 对象很多的话,那么要一个个手动删除,会很麻烦,所以可以使用
kubectl delete replicaset {rs_name}
方法四
kubectl get pod {podname} -o yaml | kubectl replace --force -f -
这种情况下,由于没有 yaml 文件,且启动的是 Pod 对象,那么是无法直接删除或者 scale 到 0 的,但可以通过上面这条命令重启。这条命令的意思是 get 当前运行的 pod 的 yaml声明,并管道重定向输出到 kubectl replace命令的标准输入,从而达到重启的目的。
删除pod
kubectl delete {pod-name}
示例
kubectl delete -f ./pod.json
清除k8s环境
sudo docker kill $(sudo docker ps -q)
#remove all containers
sudo docker rm –force $(sudo docker ps -a -q)
#remove all docker images
sudo docker rmi –force $(sudo docker images -q)
#remove all unused volumes
sudo docker volume prune –force
#k8s
sudo service docker stop
sudo rm -rf /etc/cni
rm -rf /etc/kubernetes
rm -rf /opt/cni
rm -rf /var/lib/calico/
rm -rf /var/lib/cni/
rm -rf /var/lib/etcd/
rm -rf /var/lib/rancher/*
rm -rf /var/run/calico
sudo service docker start
通过rke安装
https://www.jianshu.com/p/b082ebdc93bf
rke remove