# 根据yaml文件更新,第一次创建时候也可以用,如果没有就创建,如果有了就更新
kubectl apply -f <文件名>
# 根据yaml文件部署/创建 如果之前已经创建过yaml,此时在使用create会报错,显示已存在
kubectl create -f <文件名>
# 根据yaml文件删除
kubectl delete -f <文件名>
# 查看k8s个组件的状态
kubectl get node,pod,svc
# 查看node详情
kubectl describe node <node名称>
# 查看pod详情
kubectl describe pod <pod名称>
# 查看service详情
kubectl describe svc <svc名称>
# 删除svc
kubectl delete svc <svc名称> -n <命名空间>
# 进入容器内部
kubectl exec -it <pod名称> -c <容器组空间> -n <命名空间> -- bash
# 容器拷贝文件到本地服务器
kubectl cp -n <命名空间> <pod名称>:/文件src /本地文件
#查看pod的一些状态 yaml的编码规则
kubectl explain pod.status
#查看所有pod
kubectl get pod -A
#进入pod
kubectl exec -ti 容器名 -n 命名空间 --sh
查开node/master信息(包括ip)
kubectl describe node node1
查看deployment信息
kubectl get deployment -n <namespace>
删除deployment配置 ###同时会删除该deployment下的pod
kubectl delete deployment <deployment名> -n <namespace>
查看node节点详情
#NAME为节点名称,需要跟主机名对上,STATUS为状态:Ready为正常,NotReady为不正常,ROLES为集群状态。control-plane为master,node为工作节点 AGE为创建时间 VERSION为各个节点的k8版本
[root@k8s-master1 ~/yaml] # kubectl get node NAME STATUS ROLES AGE VERSION k8s-master01 Ready control-plane 2d19h v1.28.2 k8s-master2 Ready control-plane 2d19h v1.28.2 k8s-master3 Ready control-plane 2d19h v1.28.2 k8s-node1 Ready <none> 2d19h v1.28.2 k8s-node2 Ready <none> 2d19h v1.28.2
#INTERNAL-IP为表示这个节点的ip, OS-IMAGE为系统,KERNEL-VERSION为内核版本,CONTAINER-RUNTIME为conrainer版本号
[root@k8s-master1 ~/yaml] # kubectl get node -owide NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME k8s-master01 Ready control-plane 2d19h v1.28.2 192.168.220.21 <none> CentOS Linux 7 (Core) 4.19.12-1.el7.elrepo.x86_64 containerd://1.6.25 k8s-master2 Ready control-plane 2d19h v1.28.2 192.168.220.22 <none> CentOS Linux 7 (Core) 4.19.12-1.el7.elrepo.x86_64 containerd://1.6.25 k8s-master3 Ready control-plane 2d19h v1.28.2 192.168.220.23 <none> CentOS Linux 7 (Core) 4.19.12-1.el7.elrepo.x86_64 containerd://1.6.25 k8s-node1 Ready <none> 2d19h v1.28.2 192.168.220.24 <none> CentOS Linux 7 (Core) 4.19.12-1.el7.elrepo.x86_64 containerd://1.6.25 k8s-node2 Ready <none> 2d19h v1.28.2 192.168.220.25 <none> CentOS Linux 7 (Core) 4.19.12-1.el7.elrepo.x86_64 containerd://1.6.25
#创建一个简单的nginx-pod,可以快捷启动,不需要写yaml文件,不加-n默认创建到default命名空间
kubectl create deployment nginx --image=nginx -n 命名空间
#查看创建的nginx
kubectl get deploy -n 命名空间
#已创建的deploy生成yaml文件
[root@k8s-master1 ~/yaml] # kubectl get deployment cluster-test -oyaml
#快捷生成一个2副本的nginx的yaml文件 只输出,不保存到本地。可以使用>输出到本地
[root@k8s-master1 ~/yaml] # kubectl create deployment nginx --image=nginx --replicas=2 --dry-run=client -oyaml
#删除一个deploy
kubectl delete deploy nginx -n 命名空间
#将yaml文件里面的nginx镜像改为nginx:v2.0 修改前注意看有没有nginx:v2.0,没有的话会起不来
kubectl set image deploy nginx nginx=nginx:v2.0
#直接修改nginx的yaml文件
[root@k8s-master1 ~/yaml] # kubectl edit deploy nginx
#查看pod日志 -f为追踪日志 --tail 10 为看后10行
[root@k8s-master1 ~/yaml] # kubectl logs -f nginx-7854ff8877-kmb6q --tail 10
#查看节点资源使用情况 也可以换成pod 查看pod的资源使用情况
[root@k8s-master1 ~/yaml] # kubectl top node NAME CPU(cores) CPU% MEMORY(bytes) MEMORY% k8s-master01 169m 8% 1210Mi 31% k8s-master2 183m 9% 1155Mi 30% k8s-master3 205m 10% 1116Mi 29% k8s-node1 70m 3% 905Mi 23% k8s-node2 64m 3% 597Mi 15%