k8s

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 

部署运行

kubectl run nginx-test --image=nginx   -l app=nginx -n default
kubectl run nginx-test --image=nginx  --expose=true --port=80  -l app=nginx  -n default
kubectl create deployment nginx-dm --image=nginx -r 2 -n default
kubectl create service clusterip nginx-svc --image=nginx --tcp=8000:80  -n default
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 指定回滚的版本
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

集群配置

#查看所有资源
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
kubectl config use-context test

标签管理

kubectl get po --show-labels -n default
kubectl label pods nginx run=nginx -n default
kubectl label pods nginx run=nginx-test --overwrite -n default
kubectl label pods nginx run-
kubectl label pods --all status=unhealthy  -n default
上一篇 下一篇

猜你喜欢

热点阅读