Kubectl 命令行方式控制k8s
命令格式:kubectl [command] [TYPE] [NAME] [flags]
1.创建资源对象.
kubectl create -f my-service.yaml -f my-rc.yaml -n {namespace}
2.查看资源对象
查看所有pod列表:
kubectl get pod -n {namespace}
kubectl get pods --all-namespaces
kubectl get pods -o wide -n kubernetes-dashboard
查看rc和service列表:
kubectl get rc,service -n {namespace}
查看namespace:
kubectl get namespaces
查看全部的资源:
kubectl get all -n {namespace}
3.描述资源对象
显示Node的详细信息:
kubectl describe nodes <node-name> -n {namespace}
显示pod的详细信息:
kubectl describe pods <pod-name> -n {namespace}
显示由RC管理的pod的信息:
kubectl describe pods <rc-name> -n {namespace}
4.删除资源对象
基于pod.yaml定义的名称删除pod:
kubectl delete –f pod.yaml -n {namespace}
删除所有包含某个label的pod和service:
kubectl delete pods,services –l name=<label-name> -n {namespace}
删除所有pod:
#kubectl delete pods --all -n {namespace}
5.执行容器的命令
执行pod 的whoami命令,默认使用pod的第一个容器执行:
kubectl exec <pod-name> whoami -n {namespace}
指定pod中某个容器执行whoami命令:
kubectl exec <pod-name> -c <container-name> whoami -n {namespace}
通过bash获得pod中某个容器的TTY,相当于登录容器:
kubectl exec –it <pod-name> -c <container-name> /bin/bash -n {namespace}
6.查看容器的日志
查看容器输出到stdout的日志
kubectl logs <pod-name> -n {namespace}
跟踪查看容器的日志,相当于tail –f命令的结果:
kubectl logs –f <pod-name> -c <container-name> -n {namespace}
7.重启
7.1 有yaml文件的重启方式
kubectl replace --force -f xxx.yaml
7.2 没有yaml文件重启方式
- 使用scale命令
kubectl scale deployment {pod} --replicas=0 -n {namespace}
kubectl scale deployment {pod} --replicas=1 -n {namespace}
- 直接删除重启
kubectl delete replicaset {rs_name} -n {namespace}
此方式只针对使用的deployment对象,并且重启策略为可以重启,则可以尝试删除重启
- 使用 "-o yaml"参数导出Pod模板并重建模板(推荐)
kubectl get pod {podname} -n {namespace} -o yaml | kubectl replace --force -f -
- 使用restart 命令( Kubernetes 1.15以上版本)
kubectl rollout restart deployment {pod} -n {namespace}