k8s | 基本概念(1)

k8s | 基本概念(1)

K8s 集群架构

  • **一个Master节点(主节点)**负责管理和控制
  • **一群Node节点(计算节点) **工作负载节点,里面是具体的容器。

image-20230513174141846

  • API Server是整个系统的对外接口,供客户端和其它组件调用,相当于“接待大厅”。

  • Scheduler负责对集群内部的资源进行调度,相当于“人力资源部”。

  • Controller manager负责管理控制器,相当于“部门主管”。

  • etcd 存储集群的状态、Pod 的调度信息、Service 的发现和网络配置等;相当于“公司档案室”

1

  • Kubelet,主要负责监视指派到它所在Node上的Pod,包括创建、修改、监控、删除等。“工作人员”
  • Kube-proxy,主要负责为Pod对象提供代理。“网络代理”
  • Fluentd,主要负责日志收集、存储与查询。

Pod

最小调度单位,一个pod包含一个或多个容器,共享存储和网络。

Pod本意是豌豆荚的意思,此处指的是K8S中资源调度的最小单位,豌豆荚里面的小豆子就像是Container,豌豆荚本身就像是一个Pod

相关指令

  • 通过文件创建pod

    kubectl apply -f nginx.yaml
    
  • 查看所有的pod kubectl get pods

  • 显示有关资源的详细信息

    kubectl describe pods
    
  • 打印 Pod 中容器的日志

    kubectl logs --follow nginx-pod
    # 查看日志,--follow参数可以实时查看
    
  • kubectl exec - 在 Pod 中的容器上执行命令

  • 端口映射

    kubectl port-forward nginx 4000:80
    
  • 删除指定的pod kubectl delete pod <podName>

    kubectl delete -f nginx.yaml
    

deployment

Deployment 是在 Pod 这个抽象上更为上层的一个抽象,它可以定义一组 Pod 的副本数目、以及这个 Pod 的版本。

  • 定义一组Pod的副本数量,版本等
  • 通过控制器维护Pod的数目
  • 自动恢复失败的Pod
  • 通过控制器以指定的策略控制版本

相关指令

  • 编写deployment.yaml文件,创建 deployment

    kubectl create -f deployment.yaml
    
  • 查看所有的deployment

    kubectl get deployments
    
  • 删除指定的pod

    kubectl delete deployments <deploymentName>
    
  • 查看集群配置 kubectl config view

  • 应用升级

    kubectl set image deloyment web nginx=nginx:1.15
    

    查看是否成功

    kubectl rollout status deloyment web 
    

    查看历史版本

    kubectl rollout history deloyment web
    

    回滚到上一个版本

    kubectl rollout undo deloyment web
    

    后面加上 --to-version = 2 回滚到指定版本

    弹性伸缩

    kubectl scale deloyment web --repicas = 10 
    

services

Pod是不稳定的,IP是会变化的,所以需要一层抽象来屏蔽这种变化,这层抽象叫做Service

  • 提供访问一个或者多个Pod实例稳定的访问地址
  • 支持多种访问方式ClusterIP(对集群内部访问)NodePort(对集群外部访问)LoadBalancer(集群外部负载均衡)

相关指令

  • 查看services

    kubectl get services 或者 
    
    kubectl get svc   可以知道映射到端口号
    
  • 删除指定的s ervice kubectl delete service <serviceName>

Kubernetes(简称为K8s)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。Kubernetes基本概念和架构如下: 1. 节点(Node):Kubernetes集群中的每台机器都被称为一个节点,它可以是物理机或虚拟机。 2. Pod:Pod是Kubernetes调度的最小单元,它是一个或多个容器的集合,这些容器共享网络和存储资源。 3. 控制器(Controller):控制器是Kubernetes的核心组件之一,用于管理Pod的创建、更新和删除。常用的控制器有ReplicaSet、Deployment、StatefulSet等。 4. 服务(Service):Service是Kubernetes中的网络抽象,用于将一组Pod暴露成一个单一的访问点。Service可以通过标签选择器选择一组Pod。 5. 存储(Storage):Kubernetes支持多种存储方式,包括本地存储、网络存储和云存储等。 6. API服务器(API Server):API服务器是Kubernetes的控制中心,所有的资源对象都通过API服务器进行创建、更新和删除。 7. etcd:etcd是Kubernetes的数据存储后端,用于存储所有的集群配置信息、状态信息和元数据。它是一个高可用的分布式键值存储系统。 8. 调度器(Scheduler):调度器是Kubernetes的另一个核心组件,用于将Pod调度到合适的节点上运行。 9. 容器运行时(Container Runtime):容器运行时是Kubernetes中用于运行容器的组件,常用的容器运行时有Docker、Containerd、CRI-O等。 10. 插件(Plugins):Kubernetes支持各种插件,用于扩展其功能,常用的插件有网络插件、存储插件、日志插件等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值