
目录1.Kubernetes是什么Kubernetes集群结构核心组件3.1.kube-apiserver3.2.etcd3.3.kube-scheduler3.4.kube-controller-manager3.5.kubelet3.6.Container Runtime3.7.kube-proxyPod、Deployment、Service4.1.Pod4.2.Deployment4.3.Service5.常见资源6.kubectl常用命令一个Deployment大概是怎么运行起来的?最后总结官方资料1.Kubernetes是什么Kubernetes简称K8s主要用来管理容器化应用。我目前的理解是Docker负责运行容器Kubernetes负责管理一批容器当容器数量变多以后会遇到一些问题容器挂了怎么办多个容器放在哪台机器怎么扩容怎么更新版本怎么让用户访问这些容器Kubernetes就是帮助我们解决这些问题的。官方文档概述 | KubernetesKubernetes集群结构一个 Kubernetes 集群可以先简单分成Kubernetes 集群│├── Control Plane│└── Node我的理解Control Plane负责管理集群Node负责真正运行应用图片来源Kubernetes 官方文档核心组件3.1.kube-apiserverKubernetes 的 API 入口。平时执行kubectl get podskubectl apply -f deployment.yaml这些请求都会和API Server交互。可以记成kube-apiserver Kubernetes 的总入口3.2.etcd保存Kubernetes集群中的重要数据。3.3.kube-scheduler负责决定新的Pod放到哪个 Node上。kube-scheduler 调度 Pod3.4.kube-controller-manager不断检查实际状态和期望状态是否一致。比如希望运行3个Pod如果挂了1个就会想办法再补回来。3.5.kubelet运行在每个Node上负责管理本机上的Pod。kubelet Node 上的管家3.6.Container Runtime真正负责运行容器。常见的有containerdCRI-O3.7.kube-proxy主要和Service网络访问有关。官方文档Kubernetes 组件 | KubernetesPod、Deployment、Service4.1.PodPod是Kubernetes中最小的可部署计算单元。可以先简单理解成Pod└── Container图片来源Kubernetes官方文档官方文档Pod | Kubernetes4.2.DeploymentDeployment用来管理Pod。比如Deployment│├── Pod├── Pod└── Pod它可以用来做管理副本数量扩容、缩容滚动更新回滚简单记Deployment 管理 Pod官方文档Deployments | Kubernetes4.3.ServicePod被重新创建以后IP可能发生变化。Service可以给一组Pod提供一个相对稳定的访问入口。简单记Service 给Pod提供统一访问入口官方文档服务Service | Kubernetes5.常见资源资源简单理解Pod运行应用Deployment管理PodReplicaSet保持Pod副本数量Service提供稳定访问入口Namespace给资源分组ConfigMap保存普通配置Secret保存敏感配置Volume给Pod提供存储Ingress管理HTTP/HTTPS外部访问Label给资源贴标签Selector根据标签选择资源6.kubectl常用命令查看Nodekubectl get nodes查看Podkubectl get pods查看Deploymentkubectl get deployments查看Servicekubectl get svc应用YAMLkubectl apply -f xxx.yaml删除资源kubectl delete -f xxx.yaml查看详细信息kubectl describe pod pod名称查看日志kubectl logs pod名称官方文档命令行工具kubectl | Kubernetes一个Deployment大概是怎么运行起来的?执行kubectl apply -f deployment.yaml可以先简单理解成kubectl↓API Server↓Controller↓Scheduler↓Node↓kubelet↓Pod↓Container真实过程会更复杂但学习阶段先记住这条主线就够用了。最后总结我目前对Kubernetes最简单的理解Pod负责跑程序Deployment负责管理PodService负责让别人访问Pod再加上Control Plane负责管理集群Node负责真正运行应用Kubernetes最重要的一个思想就是我们告诉Kubernetes希望最终是什么状态它会尽量让实际状态保持成这个样子。官方资料Kubernetes概述:概述 | KubernetesKubernetes组件:Kubernetes 组件 | KubernetesPod:Pod | KubernetesDeployment:Deployments | KubernetesService:服务Service | KubernetesConfigMap:ConfigMap | KubernetesSecret:Secret | Kuberneteskubectl:命令行工具kubectl | Kubernetes本文属于个人学习笔记部分内容为了方便学习入门进行了简化详细说明还是以官方文档为准。