k8s架构简介
k8s集群基本分为2类节点:
master node
:主控节点(主要负责调度,不实际运行业务)worker node
: 工作节点
master节点的组件:(可以理解为程序)
apiserver
:接收客户端操作k8s的指令schduler
(调度) [ˈskɛdʒʊlər]从多个worker node节点的组件中通过算法选举
一个来启动服务controller manager
:向worker node
的kubectl
发送指令
node节点的组件:
kubelet
: 向docker发送指令管理docker容器的kubeproxy
: 管理docker容器网络的
etcd:
- k8s的数据库
- 用来注册节点、节点的ip信息等、服务、记录、账户、dns解析扥等
pod:
- 最小部署单元
- 一组(1个或者多个)docker容器的集合
controllers:(控制器,用来启动、停止、删除Pod)
- Deployment:无状态应用部署
- Job: 普通任务、
- CronJob:定时任务
- DaemonSet 有状态
service:
- 防止pod失联
- 定义一组pod访问策略
- 类似于VIP的概念,统一入口
label:
- 一组pod有一个统一的label
- service是通过label和一组pod进行关联
namesapce:(名称空间)
- 实现业务隔离,禁止不同pod互相访问
- 用来隔离pod运行环境,默认所有pod是可以互相访问的
etcd集群都是奇数个
k8s安装
kubeadm安装推荐比官方详细,适用于学习
https://kuboard.cn/install/install-dashboard.html
常用命令
NAME SHORTNAMES APIGROUP NAMESPACED KIND
bindings true Binding
componentstatuses cs false ComponentStatus
configmaps cm true ConfigMap
endpoints ep true Endpoints
events ev true Event
limitranges limits true LimitRange
namespaces ns false Namespace
nodes no false Node
persistentvolumeclaims pvc true PersistentVolumeClaim
persistentvolumes pv false PersistentVolume
pods po true Pod
podtemplates true PodTemplate
replicationcontrollers rc true ReplicationController
resourcequotas quota true ResourceQuota
secrets true Secret
serviceaccounts sa true ServiceAccount
services svc true Service
mutatingwebhookconfigurations admissionregistration.k8s.io false MutatingWebhookConfiguration
validatingwebhookconfigurations admissionregistration.k8s.io false Valid