11 Sep 2019 kubernetes命令tips

2023-10-17 10:44:32 浏览数 (2)

  • kubectl使用指定的配置文件

代码语言:javascript复制
kubectl --kubeconfig /path/to/kubeconfig get no
  • 进入pod中容器
代码语言:javascript复制
kubectl exec -it  -n ns pod-name /bin/sh
  • apply当前目录下的所有yaml
代码语言:javascript复制
kubectl apply -f .
  • 设置KUBECONFIG
代码语言:javascript复制
export KUBECONFIG=path/to/kubeconfig
  • 删除所有po
代码语言:javascript复制
kubectl delete po --all
  • 查询所有ns下pod
代码语言:javascript复制
kubectl get pods --all-namespaces
  • 修改对象
代码语言:javascript复制
kubectl edit deploy nginx-test
  • 给节点增加/删除标签
代码语言:javascript复制
kubectl label nodes node-name key=value
kubectl label nodes node-name key-
  • 通过标签获取或者删除对象
代码语言:javascript复制
oc -n acm-observability-china get clusterclaim.hive -l do-not-delete=true
oc -n acm-observability-china delete clusterclaim.hive -l do-not-delete=true
  • 更换deploy的img
代码语言:javascript复制
kubectl set image deployment/deployment_name container_name=img
  • 查看详细的请求和响应信息
代码语言:javascript复制
kubectl get pods --v=8
  • 查看kubectl的http请求流程
代码语言:javascript复制
kubectl get po -v 10
  • 端口转发
代码语言:javascript复制
kubectl port-forward grafana-test-6877dd694c-bp862 3001:3001
kubectl port-forward pod/minio-5cd8b89db8-rz2jk 9000:9000
  • 删除ns
代码语言:javascript复制
export NAMESPACE=devops
kubectl get namespace $NAMESPACE -o json > tmp.json
sed -i '/kubernetes/d' ./tmp.json
kubectl replace --raw "/api/v1/namespaces/$NAMESPACE/finalize" -f ./tmp.json

curl -k -H "Content-Type: application/json" -X PUT --data-binary @tmp.json https://api.soli-ocp44-acm.dev05.red-chesterfield.com/api/v1/namespaces/$NAMESPACE/finalize

oc patch -n open-cluster-management-observability project/open-cluster-management-observability --type=merge -p '{"metadata": {"finalizers":null}}'
  • 强制删除pod
代码语言:javascript复制
kubectl delete pod --grace-period=0 --force --namespace [NAMESPACE] [POD_NAME]
  • 节点污点
代码语言:javascript复制
kubectl taint nodes node1 key=value:NoSchedule
kubectl taint nodes node1 key:NoSchedule-
  • 标记节点不调度
代码语言:javascript复制
kubectl cordon $NODENAME
  • 创建deployment
代码语言:javascript复制
kubectl create deployment nginx --image=nginx
  • 查看当前用户权限
代码语言:javascript复制
kubectl auth can-i get po
  • 使用本地代理转发请求到api server
代码语言:javascript复制
oc proxy --port=8001
curl -X GET http://localhost:8001
  • 登录到节点
代码语言:javascript复制
oc debug node/worker001
chroot /host
  • 切换namespace
代码语言:javascript复制
kubectl config set-context --current --namespace=open-cluster-management-observability
  • 修改object
代码语言:javascript复制
kubectl -n acm-observability-china patch clusterpool obs-china-aws-4616 --patch '{"spec":{"size":3}}' --type=merge
  • 获取指定字段
代码语言:javascript复制
oc get route observatorium-api -o jsonpath="{.spec.host}"
  • 获取secret的value
代码语言:javascript复制
oc get secret client-cert -o jsonpath="{.data.tls.key}" | base64 -d > tls.key
  • configmap替换换行符
代码语言:javascript复制
k get cm prometheus-k8s-config -o json | jq '.data."prometheus.yaml"' -r
  • kubectl自动补齐
代码语言:javascript复制
yum -y install bash-completion
source <(kubectl completion bash)
echo "source <(kubectl completion bash)" >> ~/.bashrc

## mac
brew install bash
brew install bash-completion@2
chsh -s /usr/local/bin/bash

:) 未完待续……

LEo at 00:12

0 人点赞