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常用命令的主要内容,如果未能解决你的问题,请参考以下文章

k8s 常用命令总结

k8s常用命令

K8S系列-2.常用命令

K8s kubectl 常用命令总结,建议收藏!

k8s常用命令

k8s常用命令