k8s常用命令
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了k8s常用命令相关的知识,希望对你有一定的参考价值。
参考技术A docker run busybox echo "hello world"docker run --name kubia-container -p 8080:8080 -d kubia
docker build -t kubia .
docker images
docker ps
docker exec -it kubia-container bash
docker stop kubia-container
docker rm kubia-container
docker tag kubia luksa/kubia
docker login
docker push luksa/kubia
docker logs <container id>
kubectl run kubia --image=luksa/kubia --port=8080
kubectl expose pod kubia <--type=LoadBalancer --name kubia-http> (type指定svc类型默认clusterip,name指定svc名称)
kubectl get ... (#-o wide列出pod ip和运行节点 #-o yaml输出格式 #--show-lables列出标签#-L列出指定标签)
kubectl describe ...
kubectl cluster-info
kubectl explain pod
kubectl explain pod.spec
kubectl create -f kubia-manual.yaml
kubectl logs <pod> -c <container id> (#--previous获取奔溃容器的日志)
kubectl port-forward kubia-manual 8888:8080
参考: https://stackoverflow.com/questions/33517646/unable-to-do-port-forwarding-socat-not-found-kubernetes-on-docker
kubectl label po <pod name> <key=value> #添加
kubectl label po <pod name> <key=value> --overwrite #修改
kubectl annotate
kubectl delete po <pod name> (--all 所有poad)
kubectl delete po -l
kubectl delete ns #删除整个命名空间
kubectl delete all --all (删除所有资源)
128+9(SIGKILL) 进程强制终止,此时会创建一个全新容器
128+15(SIGTERM)
initalDelaySeconds 设置延迟来说明应用程序启动时间
kubectl delete rc kubia --cascade=false
kubectl get nodes -o jsonpath='.items[*].status.addresses[?(@.type=="ExternalIP")].address'
export CURL_CA_BUNDLE=/var/run/secrets/kubernetes.io/serviceaccount/ca.crt
TOKEN= TOKEN" https://kubernetes
kubectl create clusterrolebinding permissive-binding --clusterrole=cluster-admin --group=system:serviceaccounts
kubectl apply -f nginx-test.yaml
kubectl delete -f nginx-test.yaml #删除YAML文件中定义的资源
kubectl get deployment nginx-test -o yaml
kubectl create deployment test --image=nginx:1.7.9 --dry-run=client -o yaml > nginx.yaml
kubectl api-versions #查看K8S所支持API版本
kubectl api-resources #查看K8S所有资源类型
kubectl explain pods #发现api对象字段
kubectl explain pods.spec#了解各个属性更多信息
kubectl apply -f pod-demo.yaml
kubectl get pods #查看容器是否运行,正常情况应该是Running
kubectl get pods -o wide #查看pod详细信息,包含了IP、所属Node等
kubectl get pods --show-labels #查看资源标签
kubectl get pods -L creation_method,env #将creation_method,env标签展示在列表上
kubecl label pods kubia-manual creation_method=manual #添加标签
kubecl label pods kubia-manual env=debug --overwrite #修改标签--overwrite选项
kubectl get namespaces #查看namespace
kubectl get pods -n kube-system #显示指定namespace的pod
kubectl describe pods pod-demo
kubectl delete pods <pod name> #按名称删除
kubectl delete pods -l <label> #按标签删除<namespace> #删除整个命名空间来删除pod
kubectl delete pods --all #删除命名空间中的所有pod
kubectl delete all --all #删除命名空间中的几乎所有资源,pod rc svc
kubectl delete rc kubia --cascade=false #只删除 ReplicationController 并保待 pod 运行
kubectl logs mypod
kubectl logs mypod --previous #查看前一个容器的日志
退出状态码是两个数字的总和:128+x, 其中x是终止进程的信号编号
http://kubernetes.io/docs/user-guide/jsonpath
主要用于Pod调度和驱逐,优先级越低的QOS越容易被驱逐。不同QOS优先级不同,使用kubectl describe命令可以查看Qos Class:
· BestEffort:尽可能的为Pod分配资源,默认不进行requests设置就是该QOS,优先级最低
· Burstable:资源可波动,requests小于limit的值就是该QOS,推荐
· Guaranteed:完全可保障资源,必须使用requests和limit定义内存和CPU两项资源并且相等,优先级最高
由于每个节点都有 一个唯 一标签 , 其中 键为kubernetes.io/hostname,值为该 节点的 实际主机名
kubectl annotate pods <podname> <key=value>
以上是关于k8s常用命令的主要内容,如果未能解决你的问题,请参考以下文章