5.0 KiB
5.0 KiB
K8s
kubectl
###################### 查看信息 ######################
kubectl get pod -n kube-system -owide # 查看默认命名空间pod
kubectl --kubeconfig config-test get pod -A # 指定配置文件,查看所有pod
# 查看kube系统组件状态
kubectl get nodes # 查看node状态
kubectl get namespace # 命名空间
kubectl get svc # 查看services
kubectl get deployment,pod,service -n test # 查看test命名空间 deployment,pod,service
kubectl get endpoints # 获取endpoints列表
kubectl get pod nginx-lb-b99649675-9hkb5 -o yaml # pod详细信息
kubectl describe node xxx # 显示 node 的详细信息
kubectl -n test describe pod xxx # 显示 pod 的详细信息
kubectl describe svc -n kube-system # 查看svc网路明细
###################### 创建pod ######################
kubectl create namespace test # 创建命名空间
kubectl create -f Deployment/nginx.yml # 部署nginx
kubectl get deployment -n test -owide # 查看test命名空间 deployment
kubectl -n test scale deployment/nginx-deployment --replicas=1 # 调整Deployment副本数,replicas=0 重启
kubectl create deployment nginx --image nginx --port 80 --replicas=1 # 创建 nginx pod
kubectl -n test expose deployment nginx-deployment --type=NodePort --port=80 # 添加NodePort
# kubectl port-forward service/nginx-lb 80:8080
###################### 查看pod日志 ######################
kubectl -n test logs -f nginx-deployment-585449566-vglh4 # 查看log
###################### 进入pod ######################
kubectl -n test exec -it nginx-deployment-585449566-vglh4 -- bash
###################### 释放pod ######################
kubectl delete pod --all # 删除所有 Pod
kubectl delete service nginx-lb # 删除service
kubectl delete deployment,pod,service web1 # 删除deployment,pod,service
kubectl delete pod test-web --force --grace-period=0 # 强制删除,设置优雅关闭时间为0
kubectl delete -f recommended.yaml # 基于yml删除
kubectl delete pod,service --all -n kubernetes-dashboard # 清理指定命名空间po,svc
###################### app部署管理 ######################
kubectl set image deployment/{应用名称} {容器名称}={镜像库地址} -n {命名空间}
# 更新镜像版本
kubectl cordon node主机
# 将k8s-node1节点设置为不可调度模式
kubectl drain node主机
# 将当前运行在k8s-node1节点上的容器驱离
kubectl uncordon node主机
# #执行完维护后,将节点重新加入调度
kubectl describe node k8s-m1| grep Taints
# 查看master only状态
kubectl taint nodes k8s-m1 node-role.kubernetes.io/master-
# 希望master当node使用
kubectl taint nodes k8s-m1 node-role.kubernetes.io/master=:NoSchedule
# 还原taint
###################### labels标签管理 ######################
kubectl get node --show-labels # 查看节点 labels
kubectl -n test get pod --show-labels # 查看pod labels
kubectl delete pod,svc -l name=<label-name> # 删除所有包含某个 label 的pod 和 service
kubectl label nodes node主机 uname=snake # 节点设置标签
kubectl label nodes node主机 uname- # 节点删除标签
kubectl label nodes k8s-s1 standalone=true # 节点设置标签...
###################### create 和 apply ######################
kubectl create -f pod.yaml
kubectl apply -f pod.yaml
# apply 可以重复执行,create 不行;
# 如果在单个文件上运行操作已创建资源,则create和apply基本相同。 但是, apply允许您在目录下的多个文件上同时创建和修补。
###################### yaml ######################
kubectl create deployment web --image=nginx -o yaml --dry-run >> nginx.yml
# 生成yaml配置文件
kubectl expose deployment web --port=80 --type=NodePort --target-port=80 --name=web1 -o yaml >> nginx-web1.yaml
# 对外暴露访问端口,生成yaml配置文件
kubectl edit deployment/nginx-deployment -n test # 编辑部署文件
###################### istio ######################
kubectl get virtualservice # 查看虚拟服务
kubectl get destinationrule # 查看虚拟服务详情
kubectl describe virtualservice # 自动注入代理边车
kubectl label namespace <namespace> istio-injection=enabled
###################### more ######################
# cp文件
kubectl -n test cp busybox-x86_64 cmdb:/home/app/busybox
# 重启 pod
kubectl get pod <POD名称> -n <NAMESPACE名称> -o yaml | kubectl replace --force -f -
# 修改网络类型
kubectl patch service istio-ingressgateway -n istio-system -p '{"spec":{"type":"NodePort"}}'
# 查看前一个 pod 的日志,logs -p 选项
kubectl logs --tail 100 -p user-klvchen-v1.0-6f67dcc46b-5b4qb > pre.log
###################### docker ######################
# docker资源限制
--cpuset-cpus=0 多核CPU下绑定cpu核心标记 0-3范围 0,3多个
--cpu-shares=1024 繁忙时段所占CPU比例
-m 限制内存 -m 512m 限制512m内存
cpu-period: 设定docker运行容器重新分配CPU时间的周期(单位微秒) 1000微秒=1毫秒 最大值1000000=1秒
cpu-quota: 在设置周期内分配给当前容器的CPU执行时间
# 更新运行中的docker限制
docker update -m 4000m --memory-swap -1 ${name}