k8s之命令式编程
2023-01-19 本文已影响0人
宏势
Kubernates提供声明式编程和命令式编程两种相对的高级编程概念
kubectl -h #查看支持的命令 --kubeconfig参数 指定连接Kubernetes集群的配置文件(支持远程连接)
kubectl 在
$HOME/.kube
目录下查找名为config
的文件。 您可以通过设置KUBECONFIG
环境变量或者设置--kubeconfig
参数来指定其他kubeconfig
文件,默认文件/etc/kubernetes/admin.conf
优先级--kubeconfig > KUBECONFIG 环境变量 > $HOME/.kube/config
常用的命令:
空间管理
- 创建空间
kubectl create namespace test
- 查看空间
kubectl get namespace #或者简写 kubectl get ns
- 查看空间下存在的资源
kubectl get pod,service,deployment -n default
可以简写成:
kubectl get po,svc,deploy -n default
- 删除指定空间下所有资源
kubectl delete all --all -n default #空间不删除
#或者通过删除命名空间
kubectl delete namespace/ingress-nginx
部署运行
- 创建运行Pod
kubectl run nginx-test --image=nginx -l app=nginx -n default
- 创建运行Pod并生成Service对象
kubectl run nginx-test --image=nginx --expose=true --port=80 -l app=nginx -n default
- 创建Deployment
kubectl create deployment nginx-dm --image=nginx -r 2 -n default
- 通过Pod创建Service
kubectl create service clusterip nginx-svc --image=nginx --tcp=8000:80 -n default
- 通过Deployment创建Service
kubectl expose deployment nginx-dm --port=8000 --target-port=80 --name=nginx-http -n default
声明式文件
- 创建更新
kubectl apply -f ./pod.yaml
cat ./pod.yaml | kubectl apply -f -
apply
如果资源不存在会创建,如果存在会自定对比更新
变更升级
- 缩放升级
#先将副本调整0
kubectl scale deployment nginx-dm -n default --replicas=0
#再改回原副本数
kubectl scale deployment nginx-dm -n default --replicas=5
- 滚动升级(推荐)
#重启
kubectl rollout restart deployment/nginx-dm -n default
#查看状态
kubectl rollout status deployment/nginx-dm -n default
#查看历史版本
kubectl rollout history deployment/nginx-dm -n default
#还原到上一个版本
kubectl rollout undo deployment/nginx-dm -n default #--to-revision=2 指定回滚的版本
- replace强制先删再建
kubectl get deploy/nginx-dm -o yaml -n default | kubectl replace -f- --force
分析排错
- 进入容器
kubectl exec nginx -it -n default -- /bin/bash
- 查看详细信息
kubectl describe pod/nginx -n default
- 查看日志
kubectl logs nginx -it -n default -- /bin/bash
- 文件拷贝
#拷贝Pod中文件到宿主机
kubectl cp nginx:/tmp/foo /tmp/bar
#拷贝宿主机文件到Pod中
kubectl cp /tmp/foo nginx:/tmp/bar
集群配置
- 查看API资源
#查看所有资源
kubectl api-resources
#查看位于名称空间的资源
kubectl api-resources --namespaced=true
- 查看集群配置
kubectl config view
- 查看集群信息
kubectl cluster-info
上下文管理
- 设置/创建上下文
kubectl config set-context cxt-test --namespace=ns-test --user=kubernetes-admin --cluster=kubernetes-admin
- 查看当前上下文
kubectl config current-context
- 切换到上下文test
kubectl config use-context test
标签管理
- 显示Pod标签
kubectl get po --show-labels -n default
- 设置Pod标签
kubectl label pods nginx run=nginx -n default
- 更新Pod标签
kubectl label pods nginx run=nginx-test --overwrite -n default
- 删除Pod标签"-"
kubectl label pods nginx run-
- 设置所有Pod标签
kubectl label pods --all status=unhealthy -n default