k8s基础

发布时间 2023-11-14 15:15:50作者: Mio21

k8s基础

Kubernetes(通常称为K8s)是一个开源的容器编排和管理平台,它的主要目标是简化和自动化容器化应用程序的部署、扩展、维护和运维。以下是对Kubernetes的简单理解:

  1. 容器编排:Kubernetes帮助您有效地管理和编排容器,确保它们在集群中的部署和运行。容器是轻量级的应用程序包装,包括应用程序和其所有依赖项,因此它们可以在任何环境中一致地运行。

  2. 自动化:K8s允许您定义应用程序的期望状态,然后自动管理集群,以使其达到该状态。这包括应用程序的部署、复制、负载均衡、自动扩展和故障处理等。

  3. 高可用性:Kubernetes提供高可用性,即使节点或容器出现故障,它也可以自动替代它们,并确保应用程序保持可用。

  4. 服务发现和负载均衡:K8s允许应用程序发现并与其他应用程序和服务通信,同时提供负载均衡以均匀分配流量。

  5. 配置管理:您可以定义应用程序的配置和环境变量,并轻松地对其进行更新,而无需重新部署应用程序。

  6. 多云支持:Kubernetes可以在不同的云提供商、数据中心和物理服务器上运行,允许跨多个云环境部署和管理容器化应用程序。

  7. 监控和日志:K8s提供监控和日志记录功能,以帮助您了解应用程序的性能和状态。

  8. 扩展性:Kubernetes具有强大的扩展性,可以集成各种插件和自定义资源,以满足特定需求。

总的来说,Kubernetes是一种用于自动化和管理容器化应用程序的工具,可以显著简化复杂的容器部署和维护任务。它适用于各种规模的应用程序和环境,并已成为容器编排领域的标准解决方案。

常用命令

以下是一些常用的Kubernetes(K8s)命令,用于管理和操作K8s集群:

  1. 基本信息查询

    • kubectl version:查看Kubernetes客户端和服务器的版本信息。
    • kubectl cluster-info:查看Kubernetes集群信息。
    • kubectl get nodes:列出集群中的所有节点。
    • kubectl get pods:列出所有运行中的Pod。
    • kubectl describe node <node-name>:查看特定节点的详细信息。
  2. 创建和管理资源

    • kubectl create -f <yaml-file>:使用YAML文件创建资源。
    • kubectl apply -f <yaml-file>:使用YAML文件创建或更新资源。
    • kubectl delete <resource-name>:删除资源。
    • kubectl edit <resource-name>:编辑资源的定义。
    • kubectl replace -f <yaml-file>:用新的YAML文件替换资源。
    • kubectl scale deployment <deployment-name> --replicas=<replica-count>:调整部署的副本数。
    • kubectl expose deployment <deployment-name> --type=NodePort:将Deployment暴露为NodePort服务。
  3. 查看和日志

    • kubectl logs <pod-name>:查看Pod的日志。
    • kubectl describe pod <pod-name>:查看Pod的详细信息。
    • kubectl get services:列出所有服务。
    • kubectl get deployments:列出所有部署。
  4. 扩展和自动伸缩

    • kubectl autoscale deployment <deployment-name> --min=2 --max=5 --cpu-percent=80:设置自动伸缩规则。
    • kubectl get hpa:查看水平自动伸缩(HPA)状态。
  5. 命名空间

    • kubectl create namespace <namespace-name>:创建新的命名空间。
    • kubectl get namespaces:列出所有命名空间。
    • kubectl config set-context --current --namespace=<namespace-name>:设置默认命名空间。
  6. 存储管理

    • kubectl get pv:列出持久卷(Persistent Volumes)。
    • kubectl get pvc:列出持久卷声明(Persistent Volume Claims)。
    • kubectl exec -it <pod-name> -- /bin/sh:在Pod中打开一个终端。
  7. 安全和身份验证

    • kubectl create sa <service-account-name>:创建服务帐户。
    • kubectl create clusterrolebinding <name> --clusterrole=cluster-admin --serviceaccount=<namespace>:<service-account>:将服务帐户绑定到角色。
    • kubectl auth can-i list pods:检查权限。
  8. 升级和回滚

    • kubectl set image deployment/<deployment-name> <container-name>=<new-image>:升级Deployment中的容器镜像。
    • kubectl rollout status deployment/<deployment-name>:检查升级状态。
    • kubectl rollout undo deployment/<deployment-name>:回滚升级。

这只是一些常见的Kubernetes命令示例。Kubernetes具有丰富的命令和功能,你可以根据需要查阅官方文档或运行 kubectl --help 以获取更多详细信息和命令选项。