修改 StatefulSet 模板,保存后滚动式升级 POD(如改 image)
sudo kubectl edit statefulset odc-server -nprod
滚动式重启 POD (如修改元数据库后需要重启)
sudo kubectl rollout restart statefulset odc-server -nprod
手动删除一个 Pod 会导致 StatefulSet 控制器创建一个新的 Pod 来替换它。 kubectl delete pod
修改 statefulset 副本个数
sudo kubectl scale statefulset odc-server -nprod --replicas=1
查看集群列表
kubectl config get-contexts
minikube profile list
查看集群配置
kubectl config view
启动一个新的集群
minikube start -p dev --apiserver-ips 11.124.9.79 --apiserver-port 8443
删除一个集群
minikube delete --profile=dev
查看 namespace 列表
kubectl get namespaces
查看 cluster-info
kubectl cluster-info
eg:
$kubectl cluster-info
Kubernetes control plane is running at https://192.168.58.2:8443
CoreDNS is running at https://192.168.58.2:8443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
查看 config
kubectl config view
开启代理
kubectl proxy --port 8081
开启代理 --address 表示代理端的 ip, accept-hosts 表示可接收所有的IP请求
kubectl proxy --port 8981 --address=11.124.9.79 --accept-hosts=^.*
查看k8s 的openapi
curl localhost:8981/openapi/v2
查看 k8s 版本
curl 11.124.9.79:8981/version
开启远程访问
默认 minikube 不能远程访问,使用 kubectl 开启远程代理 --address 表示远程服务器的 IP, --accept-hosts='^.*' 表示可接收所有的 ip
kubectl proxy --port 8981 --address='11.124.9.79' --accept-hosts='^.*'
查看 minikube 日志
minikube logs kubelet
您可以根据需要替换组件名称,如api-server、controller-manager、etcd等。
把当前用户加入到 docker 组,退出后重连
stderr:
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/minikube/json": dial unix /var/run/docker.sock: connect: permission denied
sudo usermod -aG docker ${USER}
查看 job 日志
1.先查看 job 所在的 pod
kubectl get pod -l job-name={jobname}
eg:
$kubectl get pods -l job-name=pi
NAME READY STATUS RESTARTS AGE
pi-s5plx 0/1 Completed 0 4d16h
2.查看 pod 对应的日志
kubectl logs
eg:
$kubectl logs pi-s5plx
3.141592653589793238462643383279502884197169399375105820974944592307816
通过 curl 创建 job
curl 命令
curl -X POST \
-H "Content-Type: application/json" \
-d @nginx-job.json \
http://11.124.9.79:8981/apis/batch/v1/namespaces/default/jobs
nginx-job.json
{
"apiVersion": "batch/v1",
"kind": "Job",
"metadata": {
"name": "my-job"
},
"spec": {
"template": {
"metadata": {},
"spec": {
"containers": [
{
"name": "my-container",
"image": "nginx:latest"
}
],
"restartPolicy": "Never"
}
},
"backoffLimit": 2
}
}
查询所有可用的镜像
kubectl get pods --all-namespaces -o jsonpath="{..image}" | tr -s '[[:space:]]' '\n' | sort | uniq
查看镜像日志
kubectl exec task-task-1701247955888 -it -- /bin/bash -c "tail -f -n 20 /opt/odc/log/odc.log"
kubectl exec odcsmoke-test -it -- /bin/bash -c "tail -f -n 20 /opt/odc/log/odc.log"
查看镜像
minikube image ls --format table
引用外部变量后启动 pod
envsubst < start-odc.yaml | kubectl apply -f -
查看 node 节点 IP
minikube ip 或者 kubectl get nodes -o wide
公有云进入到 odc 容器中,需要加容器名
sudo kubectl exec -it odc-server-0 -codc -nprod -- bash
批量删除 pod
sudo kubectl get pods -nprod | grep task | awk '{print $1}'| sudo xargs kubectl delete pod -n prod