当前位置: 首页 > news >正文

门户定制网站建设公司广州学建设网站

门户定制网站建设公司,广州学建设网站,wordpress采集自动伪原创,phpcms 下载网站模板前言 Kubernetes#xff08;k8s#xff09; 凭借着其优良的架构#xff0c;灵活的扩展能力#xff0c;丰富的应用编排模型#xff0c;成为了容器编排领域的事实标准。越来越多的企业拥抱这一趋势#xff0c;选择 k8s 作为容器化应用的基础设施#xff0c;逐渐将自己的核…前言 Kubernetesk8s 凭借着其优良的架构灵活的扩展能力丰富的应用编排模型成为了容器编排领域的事实标准。越来越多的企业拥抱这一趋势选择 k8s 作为容器化应用的基础设施逐渐将自己的核心服务迁移到 k8s 之上。 可用性对基础设施而言至关重要。各大云计算厂商纷纷推出了高可用、可扩展的 k8s 托管服务其中比较有代表性的有 Amazon EKS、Azure Kubernetes Service (AKS)、Google Kubernetes Engine、阿里云容器服务 Kubernetes 版等。 虽然公有云托管的 k8s 服务百花齐放但很多企业仍有自建集群的需求。正是这样的原因促进了一大批出色的 k8s 集群部署方案的诞生他们的特点如下表所示。 部署方案特点Kubeadm1. 官方出品的部署工具提供了 k8s 集群生命周期管理的领域知识。 2. 旨在成为更高级别工具的可组合构建块。Kubespray1. 支持在裸机和 AWS、GCE、Azure 等众多云平台上部署 k8s。 2. 基于 Ansible Playbook 定义 k8s 集群部署任务。 3. 支持大部分流行的 Linux 发行版。Kops1. 仅支持在 AWS、GCE 等少数云平台上部署 k8s。 2. 建立在状态同步模型上用于 dry-run 和自动幂等性。 3. 能够自动生成 Terraform 配置。Rancher Kubernetes EngineRKE1. 著名的开源企业级容器管理平台 Rancher 提供的轻量级 k8s 安装工具。 2. 支持在裸机、虚拟机、公有云上部署和管理 k8s 集群。 上述方案中RKE 在易用性和灵活性上占有优势。本文接下来将介绍如何通过 RKE 部署一套高可用 k8s 集群文中使用的 RKE 版本为v0.2.2。 高可用 k8s 集群架构 首先需要了解高可用 k8s 集群的架构特点下图是官方推荐的高可用集群架构图。 其核心思想是让 k8s master 节点中的各类组件具备高可用性消除单点故障。 kube-apiserver - 对外暴露了 k8s API是整个集群的访问入口。由于 apiserver 本身无状态可以通过启动多个实例并结合负载均衡器实现高可用。etcd - 用于存储 k8s 集群的网络配置和对象的状态信息是整个集群的数据中心。可以通过启动奇数个 etcd 实例建立一个冗余的可靠的数据存储层。kube-scheduler - 为新创建的 pod 选择一个供他们运行的节点。一个集群只能有一个活跃的 kube-scheduler 实例可以同时启动多个 kube-scheduler 并利用领导者选举功能实现高可用。kube-controller-manager - 集群内部的管理控制中心。一个集群只能有一个活跃的 kube-controller-manager 实例可以同时启动多个 kube-controller-manager 并利用领导者选举功能实现高可用。 此外构建集群的时还需要注意下列问题。 节点上 k8s 进程的可靠性。需要让 kubelet、kube-scheduler、kube-controller-manager 等进程在出现故障后能自动重启。为 worker node 中的非 pod 进程预留资源防止他们将与 pod 争夺资源导致节点资源短缺。 使用 RKE 构建高可用 k8s 集群 节点规划 构建集群的第一步是将拥有的服务器按节点功能进行划分下表展示了笔者环境下的节点规划情况。 IP角色192.168.0.10部署节点192.168.0.11k8s master - api-server, etcd, scheduler, controller-manager192.168.0.12k8s master - api-server, etcd, scheduler, controller-manager192.168.0.13k8s master - api-server, etcd, scheduler, controller-manager192.168.0.14k8s worker - kubelet, kube-proxy192.168.0.15k8s worker - kubelet, kube-proxy192.168.0.16k8s worker - kubelet, kube-proxy192.168.0.17k8s worker - kubelet, kube-proxy 规划说明 单独选择了一台机器192.168.0.10作为部署节点。如果机器数不多可以将部署节点加入到 k8s 集群中。为了保证可用性择了三台机器部署 k8s master 组件。如果有条件可以将 etcd 和 master 中的其他组件分开部署这样可以根据需要更灵活地控制实例个数。例如在访问压力不大但对数据可靠性要求比较高的情况下可以专门选择 5 台机器部署 etcd另外选择 3 台机器部署 master 中的其他组件。剩余四台机器作为 k8s worker 节点。节点个数需要根据实际情况动态调整。当有 pod 因资源不足一直处于 pending 状态时可以对 worker 进行扩容。当 node 的资源利用率较低时且此 node 上存在的 pod 都能被重新调度到其他 node 上运行时可以对 worker 进行缩容。 环境准备 在完成节点规划后需要进行环境准备工作主要包含以下内容 安装 RKE - 需要在部署节点192.168.0.10上安装 RKE 二进制包具体安装方法可参考 download-the-rke-binary。配置 SSH 免密登录 - 由于 RKE 通过 SSH tunnel 安装部署 k8s 集群需要配置 RKE 所在节点到 k8s 各节点的 SSH 免密登录。如果 RKE 所在节点也需要加入到 k8s 集群中需要配置到本机的 SSH 免密登录。安装 docker - 由于 RKE 通过 docker 镜像rancher/hyperkube启动 k8s 组件因此需要在 k8s 集群的各个节点192.168.0.11 ~ 192.168.0.17 这 7 台机器上安装 docker。关闭 swap - k8s 1.8 开始要求关闭系统的 swap如果不关闭默认配置下 kubelet 将无法启动。这里需要关闭所有 k8s worker 节点的 swap。 配置 cluster.yml 在完成环境准备后需要通过 cluster.yml 描述集群的组成和 k8s 的部署方式。 配置集群组成 配置文件 cluster.yml 中的 nodes 配置项用于描述集群的组成。根据节点规划对于 k8s master 节点指定其角色为controlplane和etcd。对于 k8s worker 节点指定其角色为worker。 nodes:- address: 192.168.0.1user: adminrole:- controlplane- etcd...- address: 192.168.0.7user: adminrole:- worker 设置资源预留 K8s 的 worker node 除了运行 pod 类进程外还会运行很多其他的重要进程包括 k8s 管理进程如 kubelet、dockerd以及系统进程如 systemd。这些进程对整个集群的稳定性至关重要因此需要为他们专门预留一定的资源。 笔者环境中的 worker 设置如下 节点拥有 32 核 CPU64Gi 内存和 100Gi 存储。为 k8s 管理进程预留了 1 核 CPU2Gi 内存和 1Gi 存储。为系统进程预留了 1 核 CPU1Gi 内存和 1Gi 存储。为内存资源设置了 500Mi 的驱逐阈值为磁盘资源设置了 10% 的驱逐阈值。 在此场景下节点可分配的 CPU 资源是 29 核可分配的内存资源是 60.5Gi可分配的磁盘资源是 88Gi。对于不可压缩资源当 pod 的内存使用总量超过 60.5Gi 或者磁盘使用总量超过 88Gi 时QoS 较低的 pod 将被优先驱逐。对于可压缩资源如果节点上的所有进程都尽可能多的使用 CPU则 pod 类进程加起来不会使用超过 29 核的 CPU 资源。 上述资源预留设置在 cluster.yml 中具体形式如下。 services:kubelet:extra_args:cgroups-per-qos: Truecgroup-driver: cgroupfskube-reserved: cpu1,memory2Gi,ephemeral-storage1Gikube-reserved-cgroup: /runtime.servicesystem-reserved: cpu1,memory1Gi,ephemeral-storage1Gisystem-reserved-cgroup: /system.sliceenforce-node-allocatable: pods,kube-reserved,system-reservedeviction-hard: memory.available500Mi,nodefs.available10% 关于资源预留更详细的内容可参考文章 Reserve Compute Resources for System Daemons。 部署 k8s 集群 当 cluster.yml 文件配置完成后可以通过命令rke up完成集群的部署任务。下图展示了通过 RKE 部署的 k8s 集群架构图。 该架构有如下特点 集群中的各个组件均通过容器方式启动并且设置重启策略为always。这样当他们出现故障意外退出后能被自动拉起。Master 节点上的 kube-scheduler、kube-controller-manager 直接和本机的 API server 通信。Worker 节点上的 nginx-proxy 拥有 API server 的地址列表负责代理 kubelet、kube-proxy 发往 API server 的请求。为了让集群具有灾备能力master 节点上的 etcd-rolling-snapshots 会定期保存 etcd 的快照至本地目录/opt/rke/etcd-snapshots中。 配置负载均衡器 在完成了集群部署后可以通过 API server 访问 k8s。由于环境中启动了多个 kube-apiserver 实例以实现高可用需要为这些实例架设一个负载均衡器。这里在192.168.0.10上部署了一台 nginx 实现了负载均衡的功能nginx.conf 的具体配置如下。 ... stream {upstream apiserver {server 192.168.0.11:6443 weight5 max_fails3 fail_timeout60s;server 192.168.0.12:6443 weight5 max_fails3 fail_timeout60s;server 192.168.0.13:6443 weight5 max_fails3 fail_timeout60s;}server {listen 6443;proxy_connect_timeout 1s;proxy_timeout 10s;proxy_pass apiserver;} } ... 这时通过负载均衡器提供的端口访问 API server 会出现异常Unable to connect to the server: x509: certificate is valid for xxx, not 192.168.0.10。这里需要将负载均衡器的 IP 地址或域名加入到 API server 的 PKI 证书中可以通过 cluster.yml 中的 authentication 配置项完成此功能。 authentication:strategy: x509sans:- 192.168.0.10 修改完 cluster.yml 后运行命令rke cert-rotate。 验证 在完成上述所有步骤后可以通过命令kubectl get nodes查看节点状态。如果所有节点的状态均为 Ready则表示集群部署成功。 NAME STATUS ROLES AGE VERSION 192.168.0.11 Ready controlplane,etcd 1d v1.13.5 192.168.0.12 Ready controlplane,etcd 1d v1.13.5 192.168.0.13 Ready controlplane,etcd 1d v1.13.5 192.168.0.14 Ready worker 1d v1.13.5 192.168.0.15 Ready worker 1d v1.13.5 192.168.0.16 Ready worker 1d v1.13.5 192.168.0.17 Ready worker 1d v1.13.5 总结 Rancher Kubernetes EngineRKE为用户屏蔽了创建 k8s 集群的复杂细节简化了部署步骤降低了构建门槛。对于那些有自建 k8s 集群需求的企业是一个不错的选择。 原文链接 本文为云栖社区原创内容未经允许不得转载。
http://www.zqtcl.cn/news/281373/

相关文章:

  • net网站开发教程网站防御怎么做
  • 手机网站设计只选亿企邦哪个选项不属于网络营销的特点
  • 繁昌网站建设如何用易语言做网站
  • 电子商务网站建设财务分析建立网站方法
  • 大专学网站开发wordpress显示数据库请求
  • 诸暨网站制作设计公众号文章怎么导入到wordpress
  • 网站死链怎么办青岛网站制作企业
  • 已经有域名 怎么修改网站网站推广找客户
  • 网站的制作建站人增加网站流量
  • 向国旗致敬做时代新人网站广州网站建设公司排名
  • 阿里云域名怎么做网站对网站进行seo优化
  • 响应式网站建设合同11月将现新冠感染高峰
  • 做网站客户一般会问什么问题百度云网盘资源分享网站
  • 网站设计中超链接怎么做艺术设计
  • 卡盟网站建设wordpress优化代码
  • 做网站需要什么技术员商城型网站开发网站建设
  • discuz做地方门户网站网站大全免费完整版
  • 莆田人做的网站一天赚2000加微信
  • 阿里云网站访问不了怎么办做网站二维码
  • 手机商城网站建设可采用的基本方式有
  • 网站备案管理做广告公司网站建设价格
  • 绵阳专业网站建设公司上海外贸公司排名榜
  • 如何做英文系统下载网站快速排名工具免费
  • 苏州建网站必去苏州聚尚网络网页视频提取在线工具
  • 网站建设服务市场分析百度集团
  • 网站怎么企业备案信息做网站业务员如何跟客户沟通
  • 如何网站推广知名的集团门户网站建设费用
  • 网站入口设计规范专门做喷涂设备的网站
  • 最简单网站开发软件有哪些企业管理培训课程培训机构
  • 桂城网站制作公司wordpress 导航网站