k8s基础

一.关于k8s

1.1 kubernetes相关网站

K8S官网:https://kubernetes.io

Kubeadm:https://kubernetes.io/zh-cn/docs/setup/production-environment/tools/kubeadm/install-kubeadm/

docker官网:https://docs.docker.com

Prometheus官网:https://prometheus.io

Ansible部署k8s:https://github.com/easzlab/kubeasz

1.2 相关产品

阿里云:ACK

亚马逊云:EKS

二.k8s组件

2.1 Master组件(server)

控制平面组件(Control Plane Components)

组件 功能
kube-apiserver 中央通信中心,公开Kubernetes API(6443端口)
etcd K8S所有组件数据都存储在其中
kube-scheduler 资源计算,资源调度
kube-controller-manager 用于管理控制器,控制Node组件,启动POD

NGINX状态码308:k8s跳转

2.2 Node组件(client)

组件 功能
kubelet 控制容器运行时(如Docker)启动Pod
kube-proxy 处理网络和端口映射
Container Runtime 容器运行引擎(docker,containerd...)

三.K8S高可用架构

四.POD创建流程

五.K8S核心资源

5.1 Pod资源

(1)Pod是K8S的最小单位
(2)Pod的IP地址是随机的,删除Pod会改变IP
(3)Pod都有一个根容器
(4)一个Pod内可以由一个容器或多个容器组成
(5)一个Pod内的容器共享根容器的网络、名称空间、文件系统卷
(6)一个Pod内的网络地址由根容器提供

5.2 Service资源

NodePort:将端口映射在宿主机上,提供外界访问
ClusterIP:可以理解为是POD的负载均衡
LoadBalancer:通过云服务提供商的负载均衡器(如AWS ELB、GCP LB)将Service公开到外部网络,以实现负载均衡和高可用性。

5.3 Label

Label标签是K8S中非常重要的一个属性,Label标签就像身份证一样,可以用来识别K8S的对象。
传统架构中,不同的服务应用之间通讯,都是通过IP和端口,但是在K8S中很多匹配关系都是通过标签来找。
在K8S中,所有资源通信,都需要通过标签来通信,不通过IP:Port的形式

5.3 Namespace

Namespace将集群内部的资源进行隔离划分。
在Namespace中,形成逻辑上的不同项目组或用户组。

5.4 Controller

用来管理POD的控制器
Pod控制器的种类有很多:

  • RC Replication Controller 控制Pod有多个副本
  • RS ReplicaSet RC控制器的升级版
  • Deployment 推荐使用,功能强大,包含了RS控制器
  • DaemonSet 保证所有的Node节点上,有且只有一个Pod运行
  • StatefulSet 有状态的应用,为Pod提供唯一标识,它可以保证部署和scale的顺序
暂无评论

发送评论 编辑评论


				
下一篇