💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。
本人主要分享计算机核心技术:系统维护、数据库、网络安全、自动化运维、容器技术、云计算、人工智能、运维开发、算法结构、物联网、JAVA 、Python、PHP、C、C++等。
不同类型针对性训练,提升逻辑思维,剑指大厂,非常期待和您一起在这个小小的网络世界里共同探索、学习和成长
K8s命令大全,助你成为k8s专家!
K8s是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。 Kubernetes提供了服务发现、负载均衡、自动扩展等功能,使得部署和管理容器化应用变得更加高效和可靠。
K8s的核心组件包括:
- kube-apiserver:作为资源操作的唯一入口,提供认证、授权、访问控制、API注册和发现等机制。
- kubelete:负责维护容器的生命周期,通过控制docker来创建、更新、销毁容器,并上报节点健康状态给APIServer。
- Kube-controller-manager :负责维护集群的状态,包括故障检测、自动扩展、滚动更新等。
- kube-schedule r**:负责资源的调度,按照预定的调度策略将pod调度到相应的节点。**
- etcd:负责存储集群中各种资源对象的信息,采用键值对方式存储,所有的k8s集群数据存放在此。
K8s的核心概念包括Pod,它是K8s中最小的可部署单位,一个或多个容器的集合,共享同一个网络命名空间和存储卷,所有的容器化应用都运行在Pod中
K8s是一个强大的容器编排平台,熟练的掌握k8s可大大提高工作效率和强化自身技能,以下是常用的命令,可分为不同的功能模块进行分类:
1. 基本集群操作
`# 查看集群信息kubectl cluster-info`
`# 查看集群当前上下文``kubectl config current-context`
`# 切换上下文``kubectl config use-context <context-name>`
`# 获取节点列表kubectl get nodes`
2. 命名空间 (Namespace)
`# 列出所有命名空间kubectl get namespaces`
`# 创建命名空间``kubectl create namespace <namespace-name>`
`# 删除命名空间kubectl delete namespace <namespace-name>`
3. Pod 操作
`# 获取 Pod 列表kubectl get pods -n <namespace>`
`# 查看 Pod 的详细信息``kubectl describe pod <pod-name> -n <namespace>`
`# 创建 Pod(通过 YAML 文件)``kubectl apply -f <pod.yaml>`
`# 删除 Pod``kubectl delete pod <pod-name> -n <namespace>`
`# 查看 Pod 日志``kubectl logs <pod-name> -n <namespace>`
`# 进入 Pod 的容器中kubectl exec -it <pod-name> -n <namespace> -- /bin/bash`
4. Deployment 操作
`# 获取 Deployment 列表kubectl get deployments -n <namespace>`
`# 创建 Deployment``kubectl apply -f <deployment.yaml>`
`# 更新 Deployment``kubectl set image deployment/<deployment-name> <container-name>=<new-image> -n <namespace>`
`# 删除 Deployment``kubectl delete deployment <deployment-name> -n <namespace>`
`# 查看 Deployment 滚动更新状态``kubectl rollout status deployment/<deployment-name> -n <namespace>`
`# 回滚 Deploymentkubectl rollout undo deployment/<deployment-name> -n <namespace>`
5. Service 和 Ingress 操作
`# 获取 Service 列表kubectl get services -n <namespace>`
`# 创建 Service``kubectl apply -f <service.yaml>`
`# 删除 Service``kubectl delete service <service-name> -n <namespace>`
`# 获取 Ingress 列表``kubectl get ingress -n <namespace>`
`# 创建 Ingress``kubectl apply -f <ingress.yaml>`
`# 删除 Ingresskubectl delete ingress <ingress-name> -n <namespace>`
6. ConfigMap 和 Secret
`# 创建 ConfigMapkubectl create configmap <configmap-name> --from-literal=key=value -n <namespace>`
`# 查看 ConfigMap``kubectl get configmaps -n <namespace>`
`# 删除 ConfigMap``kubectl delete configmap <configmap-name> -n <namespace>`
`# 创建 Secret``kubectl create secret generic <secret-name> --from-literal=key=value -n <namespace>`
`# 查看 Secret``kubectl get secrets -n <namespace>`
`# 删除 Secret``kubectl delete secret <secret-name> -n <namespace>`
7. PV 和 PVC
`# 获取 PersistentVolume (PV) 列表kubectl get pv`
`# 获取 PersistentVolumeClaim (PVC) 列表``kubectl get pvc -n <namespace>`
`# 创建 PVC``kubectl apply -f <pvc.yaml>`
`# 删除 PVCkubectl delete pvc <pvc-name> -n <namespace>`
8. 监控和排错
`# 查看 Pod 日志kubectl logs <pod-name> -n <namespace>`
`# 查看所有 Pod 的事件``kubectl get events -n <namespace>`
`# 查看资源使用情况``kubectl top pod -n <namespace>``kubectl top node`
`# 调试 Pod 的容器``kubectl debug pod/<pod-name> -n <namespace> --image=<debug-image>`
`# 查看资源 YAML 配置kubectl get <resource-type> <resource-name> -n <namespace> -o yaml`
9. 删除资源
`# 删除所有资源kubectl delete all --all -n <namespace>`
`# 删除指定类型资源``kubectl delete <resource-type> <resource-name> -n <namespace>`
10. 高级命令
`# 端口转发kubectl port-forward <pod-name> <local-port>:<pod-port> -n <namespace>`
`# 在节点上运行命令``kubectl debug node/<node-name> -it --image=<debug-image>`
`# 获取 API 资源列表``kubectl api-resources`
`# 获取资源的 API 详细信息kubectl explain <resource-type>`