美文网首页k8s
k8s之命令式编程

k8s之命令式编程

作者: 宏势 | 来源:发表于2023-01-19 13:55 被阅读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
    

    相关文章

      网友评论

        本文标题:k8s之命令式编程

        本文链接:https://www.haomeiwen.com/subject/rmaicdtx.html