❖ Kubernetes核心概念
❖ 快速部署一个Kubernetes集群
❖ Kubernetes将弃用Docker!
❖ kubectl管理工具
❖ Kubernetes基本资源概念
❖ 资源编排(YAML)
❖ 深入理解Pod对象:基本管理
❖ 深入理解Pod对象:调度
❖ 常用工作负载控制器
Kubernetes 核心概念
• Kubernetes是什么
• Kubernetes集群架构与组件
主流的容器集群管理系统
容器编排系统:
• Kubernetes
• Swarm
• Mesos Marathon
Kubernetes是什么
• Kubernetes是Google在2014年开源的一个容器集群管理系统,Kubernetes简称K8s。
• Kubernetes用于容器化应用程序的部署,扩展和管理,目标是让部署容器化应用简单高效。
官方网站:http://www.kubernetes.io 官方文档:https://kubernetes.io/zh/docs/home
Kubernetes集群架构与组件
Kubernetes集群架构与组件
Master组件
kube-apiserver
Kubernetes API,集群的统一入口,各组件协调者,以RESTful API提供接口服务,所有对象资源的增删改查和监听操作都交给 APIServer处理后再提交给Etcd存储。
kube-controller-manager
处理集群中常规后台任务,一个资源对应一个控制器,而 ControllerManager就是负责管理这些控制器的。
kube-scheduler
根据调度算法为新创建的Pod选择一个Node节点,可以任意部署, 可以部署在同一个节点上,也可以部署在不同的节点上。
etcd
分布式键值存储系统。用于保存集群状态数据,比如Pod、Service 等对象信息。
Node组件
kubelet
kubelet是Master在Node节点上的Agent,管理本机运行容器的生命周 期,比如创建容器、Pod挂载数据卷、下载secret、获取容器和节点状态 等工作。kubelet将每个Pod转换成一组容器。
kube-proxy
在Node节点上实现Pod网络代理,维护网络规则和四层负载均衡工作。
第三方容器引擎,例如docker、containerd、podman 容器引擎,运行容器。
快速部署一个Kubernetes集群
• 生产环境部署K8s的2种方式
• 服务器硬件配置推荐
• 使用kubeadm快速部署一个K8s集群
• 部署的网络组件起什么作用?
• 查看集群状态
• Kubernetes将弃用Docker!
生产环境部署K8s的2种方式
kubeadm
Kubeadm是一个工具,提供kubeadm init和kubeadm join,用于快速部署Kubernetes集群。
部署地址:https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm/
二进制
从官方下载发行版的二进制包,手动部署每个组件,组成Kubernetes集群。
下载地址:https://github.com/kubernetes/kubernetes/releases
第三方工具
服务器硬件配置推荐
使用kubeadm快速部署一个K8s集群
1、安装Docker
2、创建一个 Master 节点
kubeadm init
3、将一个 Node 节点加入到当前集群中
kubeadm join
4、部署容器网络(CNI)
kubectl apply -f calico.yaml
5、部署Web UI(Dashboard)
查看集群状态
查看master组件状态: kubectl get cs
查看node状态: kubectl get node
查看所有API资源信息: kubectl api-resources
查看资源信息: kubectl get # -o wide、-o yaml
查看资源详情: kubectl describe