初步认识一下Kubernetes(k8s)

K8s是什么?

K8s就是Kubernetes,因为K和s之间有8个字母,所以简称K8s
K8s是以谷歌内部容器编排管理平台Borg为原型的开源实现

  • 是一个容器编排管理平台
  • 是一个微服务支撑平台
  • 是一个可移植的云平台

K8s作为容器管理平台

  1. 以Pod(容器组)为基本的编排和调度单元以及声明式的对象配置模型(控制器、configmap、sercet等)
  2. 资源配额与分配管理
  3. 健康检查、自愈、伸缩与滚动升级

K8s提供了对于微服务的支撑

  1. 服务发现、服务编排与内部的路由支持
  2. 服务的快速部署和自动负载均衡
  3. 提供对“有状态”服务的支持等

K8s是一个可移植的云平台

  1. 成为了面向云原生应用的新的可移植层,即“云平台”
  2. 为用户提供简单且一致化的应用化容器部署、伸缩和管理机制,形成新的、通用的应用云化模型
  3. 云应用支持跨云迁移

小结:
从云原生角度,Kubernetes带来的好处:

  • 容器管理,调度和编排:摆脱锁定,支持跨云
  • 先进的Wordload管理之经验模型:Pod和controller
  • 原生支持微服务抽象:服务注册、服务发现和自动负载均衡

为啥子需要K8s

真正的生产型应用会涉及多个容器。这些容器必须跨多个服务器主机进行部署。容器安全性需要多层部署,因此可能会比较复杂。但 Kubernetes 有助于解决这一问题。Kubernetes 可以提供所需的编排和管理功能,以便您针对这些工作负载大规模部署容器。借助 Kubernetes 编排功能,您可以构建跨多个容器的应用服务、跨集群调度、扩展这些容器,并长期持续管理这些容器的健康状况。

K8s的作用

  • 跨多台主机进行容器编排。
  • 更加充分地利用硬件,最大程度获取运行企业应用所需的资源。
  • 有效管控应用部署和更新,并实现自动化操作。
  • 挂载和增加存储,用于运行有状态的应用。
  • 快速、按需扩展容器化应用及其资源。
  • 对服务进行声明式管理,保证所部署的应用始终按照部署的方式运行。
  • 利用自动布局、自动重启、自动复制以及自动扩展功能,对应用实施状况检查和自我修复。

随口说说K8s的架构

一个K8S系统,通常称为一个K8S集群(Cluster)
这个集群主要包含两个部分:

  • 一个Master节点(主节点)
  • 一堆Node节点(计算节点)

在这里插入图片描述
Master节点主要是负责管理和控制。Node节点是工作负载节点,里面是具体的容器。

关于Master节点

Master节点主要由API ServerSchedulerController manager构成

在这里插入图片描述

  1. API Server:是整个系统对外的接口,提供客户端和其它组件的调用,Kubernetes 中所有的组件都会和 API Server 进行连接,组件与组件之间一般不进行独立的连接,都依赖于 API Server 进行消息的传送
  2. Scheduler:负责对集群内部的资源进行调度,可以理解为调度中心,一个用户提交的 Container,依据它对 CPU、对 memory 请求大小,找一台合适的节点,进行放置

在这里插入图片描述

  1. Controller manager:负责管理控制器,比如说对容器进行修复,以及扩容
  2. etcd:是一个分布式的一个存储系统,API Server 中所需要的这些原信息都被放置在 etcd 中,etcd 本身是一个高可用系统,通过 etcd 保证整个 Kubernetes 的 Master 组件的高可用性。

关于Node节点(真正运行业务负载)

在这里插入图片描述
Node节点包括Dockerkubeletkube-proxyFluentdkube-dns(可选),还有就是Pod

  1. Pod
    Pod是K8s最基本的操作单元,一个Pod代表着集群中运行的一个进程,其内部封装了一个或多个紧密相关的容器,除了Pod之外,K8s还有一个Service的概念,一个Service可以看作一组提供相同服务的Pod的对外访问接口,将工作内容与容器集分离。Kubernetes 服务代理会自动将服务请求分发到正确的容器集,无论这个容器集会移到集群中的哪个位置,哪怕被替换掉。

  2. Docker:主要用来创建容器

  3. Kubelet:主要负责监视指派到它所在Node上的Pod,包括创建、修改、监控、删除等,也是真正去运行Pod组件的部分

  4. Kube-proxy:主要负责为Pod对象提供代理

  5. Fluentd:主要负责日志收集、存储与查询

在这里插入图片描述
过程描述:
用户可以通过 UI 或者 CLI 提交一个 Pod 给 Kubernetes 进行部署,这个 Pod 请求首先会通过 CLI 或者 UI 提交给 Kubernetes API Server,下一步 API Server 会把这个信息写入到它的存储系统 etcd,之后 Scheduler 会通过 API Server 的 watch 或者叫做 notification 机制得到这个信息:有一个 Pod 需要被调度。
这个时候 Scheduler 会根据它的内存状态进行一次调度决策,在完成这次调度之后,它会向 API Server report 说:“这个 Pod 需要被调度到某一个节点上。”
这个时候 API Server 接收到这次操作之后,会把这次的结果再次写到 etcd 中,然后 API Server 会通知相应的节点进行这次 Pod 真正的执行启动。相应节点的 kubelet 会得到这个通知,kubelet 就会去调 Container runtime 来真正去启动配置这个容器和这个容器的运行环境,去调度 Storage Plugin 来去配置存储,network Plugin 去配置网络。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
安装 KubernetesK8S)需要多个步骤,以下是一些基本步骤: 1. 准备好至少两台服务器,其中一台将用作主节点(Master Node),其余的将用作工作节点(Worker Nodes)。 2. 在每台服务器上安装 Docker。这可以通过命令行运行以下命令来完成: ``` $ curl -sSL get.docker.com | sh && \ sudo usermod -aG docker $USER ``` 3. 安装 Kubernetes 工具。Kubernetes 有很多不同的工具,但最常用的是 kubeadm、kubectl 和 kubelet。这些可以通过以下命令来安装: ``` $ sudo apt-get update && \ sudo apt-get install -y apt-transport-https curl && \ curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - && \ echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list && \ sudo apt-get update && \ sudo apt-get install -y kubelet kubeadm kubectl ``` 4. 在主节点上初始化 Kubernetes。这可以通过以下命令来完成: ``` $ sudo kubeadm init --pod-network-cidr=10.244.0.0/16 ``` 5. 安装网络插件。这将使您的工作节点可以与其他节点通信。我们建议使用 Flannel 网络插件,可以通过以下命令安装: ``` $ kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml ``` 6. 加入工作节点。在主节点上运行 `kubeadm init` 命令时,会生成一个命令,您可以将其复制到工作节点上运行,以加入 Kubernetes 集群。 ``` $ sudo kubeadm join <master-node-ip>:<master-node-port> --token <token> --discovery-token-ca-cert-hash <hash> ``` 以上是安装 Kubernetes 的基本步骤。请注意,这只是一个大致的指南,具体的步骤可能因您的环境而异。更详细的指南可以在 Kubernetes 官方文档中找到。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值