122 lines
5.0 KiB
Markdown
122 lines
5.0 KiB
Markdown
# K8s
|
||
|
||
## kubectl
|
||
|
||
```bash
|
||
###################### 查看信息 ######################
|
||
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}
|
||
```
|