k8s常用命令说明
基本命令展示
kubectl get # 获取信息
kubectl get deployment
kubectl get pods
kubectl get service 创建中间层service,相当于DNAT
kubectl get ns 获取名称空间;
# kubectl get pods -n kube-system -o wide #获取kube-system名称空间下的pod并展示详细信息
-n 后面接名称空间
-o ouput形式支持 wide/yaml/json
kubectl create # 创建资源
kubectl create deploy xxx --image=xxx #如果没有指定Namespace,创建的容器默认是在default ns下
kubectl delete # 删除资源
kubectl delete deployment xxx
kubectl delete pods xxx
kubectl delete service xxx
kubctl describe #获取描述信息
kubectl describe service/xxx
kubectl exec # 相当于docker exec 在指定容器中执行操作
kubectl exec -it nginx-app-5jyvm -- /bin/bash
kubectl exec POD [-c CONTAINER] -- COMMAND [args...] [options] #POD中有多个容器需要 -c containername 指定执行命令的容器
kubectl scale # 扩容/缩容
kubectl scale --replicas=3 deploy/my-nginx # 将deploy下的my-nginx扩容为3个
kubectl run --image=xxx name_xx --port
kubectl run --image=nginx nginx-app --port=80
kubectl expose #暴露端口
kubectl expose deployment nginx-app --type="NodePort" --port=80
in default,pods only deploy on node,not on master, please use the node ip to access.
kubectl attach # 连接pod
kubectl attach -it nginx-app-5jyvm
kubectl logs
kubectl logs -f nginx-app-zibvs
kubectl logs [-f] [-p] (POD | TYPE/NAME) [-c CONTAINER] [options] #POD中有多个容器需要 -c containername 指定执行命令的容器
kubectl explain # 讲解每个资源属性
kubectl explain pod
kubectl get pods -n develop --show-labels # 显示develop名称空间下pod的标签
kubectl get pods --show-labels -l xxx # -l后面跟标签选择器或表达式,如: app=nginx,app!=nginx, “app in(nginx,ngx-app,xxx)”
kubectl get pods --show-labels -l xxx -L xxx # -L 新定义一行来显示指定键值
kubectl label # 标签操作
kubectl label [--overwrite] (-f FILENAME | TYPE NAME) KEY_1=VAL_1 ... KEY_N=VAL_N [--resource-version=version]
kubectl label pods/dev-pod -n develop tier=frontend # 增减tier标签 同时添加多个标签,使用空格分隔标签即可
kubectl label --overwrite pods/dev-pod -n develop app=dev-ngx # overwrite app标签
kubectl label pods/dev-pod -n develop tier- # 删除tier标签, 使用“键名-”表示删除
kubectl annotate # 注解 类似于label操作
kubectl annotate [--overwrite] (-f FILENAME | TYPE NAME) KEY_1=VAL_1 ... KEY_N=VAL_N [--resource-version=version]
kubectl patch #打补丁更新,支持json和yaml格式
kubectl patch (-f FILENAME | TYPE NAME) -p PATCH [options]
kubectl patch node k8s-node-1 -p '{"spec":{"unschedulable":true}}'
kubectl rollout # 回滚
kubectl rollout SUBCOMMAND [options]
kubectl rollout status deployment myapp-deploy # 查看回滚状态
kubectl rollout history deployment myapp-deploy # 查看历史版本
kubectl rollout undo deployment myapp-deploy --to-revision=1 # 回滚到第1版
测试命令: wget -o - -q 127.0.0.1