k8s日常开发运维操作
前言:记录一些日常开发管理k8s用到的命令
pod命令
启动
根据yaml文件创建pod
执行命令即可启动kubectl apply -f portscan-consumer.yaml
portscan-consumer.yaml
apiVersion: eci.alibabacloud.com/v1 kind: ImageCache metadata: name: portscan-image annotations: k8s.aliyun.com/eci-image-cache: "true" # 开启镜像缓存复用。 spec: images: - xxxx-registry.cn-beijing.cr.aliyuncs.com/fc/portscan-consumer:prod-${PORTSCAN_CI_TAG_NAME} imageCacheSize: 25 # 镜像缓存大小,单位GiB。 retentionDays: 7 # 镜像缓存保留时间。 --- apiVersion: serving.knative.dev/v1 kind: Service metadata: name: portscan-service namespace: scanner spec: template: metadata: annotations: k8s.aliyun.com/eci-with-eip: "true" k8s.aliyun.com/eip-bandwidth: "100" k8s.aliyun.com/eip-internet-charge-type: "PayByTraffic" autoscaling.knative.dev/class: "kpa.autoscaling.knative.dev" autoscaling.knative.dev/min-scale: "1" autoscaling.knative.dev/max-scale: "1000" # autoscaling.knative.dev/scale-down-delay: "3h" # 保持Pod至少3小时, nmap 100 ip 900s*4组 每组25 最长为1个小时 autoscaling.knative.dev/metric: "concurrency" autoscaling.knative.dev/target: "1" # autoscaling.knative.dev/target-utilization-percentage: "50" serving.knative.dev/revision-timeout-seconds: "1800" spec: containerConcurrency: 1 containers: - image: xxxx-registry.cn-beijing.cr.aliyuncs.com/fc/portscan-consumer:prod-${PORTSCAN_CI_TAG_NAME} env: - name: TZ value: Asia/Shanghai resources: requests: cpu: "1000m" #容器的vCPU上限 memory: "2000Mi" #容器的内存上限 limits: cpu: "2000m" #容器的vCPU上限 memory: "3000Mi" #容器的内存上限
列表
kubectl get pods -A
重启
pod重启的话,通过delete
命令删除该pod,k8s控制器会重新创建一个该pod,如下图所示
kubectl delete pod prod-x-scanner-portscan-57f768ccb-7v8nl -n scanner
deployment命令
启动
执行命令即可启动kubectl apply -f deployment.yaml
deployment.yaml
apiVersion: apps/v1 kind: Deployment metadata: name: example-deployment spec: replicas: 3 selector: matchLabels: app: example template: metadata: labels: app: example spec: containers: - name: example-container image: nginx:latest ports: - containerPort: 80
列表
kubectl get deployments -n scanner
重启
kubectl rollout restart deployment/portscan-service-00007-deployment -n scanner
对应的该deployment中新的pod就会起来,如下图所示
logs日志命令
查看指定pod日志
kubectl logs portscan-service-00011-deployment-56b4fd9988-q7pdg -n scanner
由于自动重启多次导致日志丢失,可以加上previous
参数查看历史日志信息
kubectl logs portscan-service-00011-deployment-56b4fd9988-q7pdg -n scanner --previous
config配置命令
切换context环境
用于方便管理不同的context环境
切换到k8s-prod环境中
kubectl config use-context k8s-prod
切换到k8s-hw环境中
kubectl config use-context k8s-hw
yaml文件
阿里云镜像缓存复用
当yaml中编写了该字段的时候,标注部署上传镜像的时候开启镜像缓存复用
apiVersion: eci.alibabacloud.com/v1 kind: ImageCache metadata: name: portscan-image annotations: k8s.aliyun.com/eci-image-cache: "true" # 开启镜像缓存复用。 spec: images: - xxxx-registry.cn-beijing.cr.aliyuncs.com/fc/portscan-consumer:prod-${PORTSCAN_CI_TAG_NAME} imageCacheSize: 25 # 镜像缓存大小,单位GiB。 retentionDays: 7 # 镜像缓存保留时间。
secrets命令
列表
kubectl get secrets
获取凭证信息
#!/bin/bash # 设置输出目录 OUTPUT_DIR="./secrets_decoded_json" mkdir -p "$OUTPUT_DIR" # 获取所有 secrets 并导出为 JSON 文件 kubectl get secrets -o name | while read -r secret_name; do # 提取 secret 名称 secret=$(basename "$secret_name") # 获取 secret 详情,解码 .data 字段并保存为 JSON 文件 kubectl get "$secret_name" -o json | \ jq '(del(.metadata.managedFields) | .data |= with_entries(.value |= @base64d))' > "$OUTPUT_DIR/$secret.decoded.json" echo "Exported and decoded $secret to $OUTPUT_DIR/$secret.decoded.json" done echo "All secrets have been exported and decoded to the $OUTPUT_DIR directory."
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
2020-02-05 学习:MFC的CWinApp和CFrameWnd