etcd

第一次搭建kubernetes经历

情到浓时终转凉″ 提交于 2020-08-17 06:44:38
1.准备部署环境 master 192.168.40.162 node 192.168.40.220 2.下载部署包(从192.168.40.33复制部署包) scp /opt/kylincloud2_2.0_ft2000_v0.0.1.13_20200511.tar.gz root@192.168.40.162:/opt/ 3.免密认证 通过192.168.40.192对192.168.40.162及192.168.40.220做免密认证,即master节点对自身及所有node节点做免密认证 (1)ssh-keygen -t rsa (2)cat id_rsa.pub>>authorized_keys (3)chmod 710 authorized_keys (4)scp -r authorized_keys root@192.168.40.220:~/.ssh 4.时间同步 (1)ntpdate 192.168.40.253(此命令分别执行在master及node) 将192.168.40.162和192.168.40.220统一与192.168.40.253时间保持一致,即master及所有节点保持统一一致时间 (2)hwclock -w(此命令分别执行在master及node) 将软件时间写入硬件时间,硬件时间是BIOS的时间 5.根据需求修改default.yaml文件

第一章 Kubernetes进阶之Kubernetes简介

瘦欲@ 提交于 2020-08-16 22:36:23
  Kubernets是什么 Kubernets是Google在2014年开源的一个容器集群管理系统,简称k8s K8s用于容器化应用程序部署,扩展和管理 K8s提供了容器编排,资源编排,弹性伸缩,部署管理,服务发现等一系列功能 K8s的目标是让容器部署更加简单高效   Kubernets的特性 自我修复 弹性伸缩 自动部署和回滚 服务发现和负载均衡 机密和配置管理 存储编排 批处理   Kunernetes集群架构与组件   Master 组件:   kube-apiserver :   Kubernetes API 集群的统一入口,各组件的协调者,以RESTful API提供接口方式,所有的对象资源的   增删改查和监听操作都交给APIServer处理后再提交给etcd数据库做持久化存储   Kube-controller-manager   处理集群中常规后台任务,一个资源对应一个控制器,而controllerManager就是负责处理这些控制器的   kube-scheduler   根据调度算法为新创建的pod选择一个Node节点,可以任意部署,可以部署在同一个节点上,也可以部署在不同的节点上   etcd   分布式键值存储系统,用于保存集群状态数据,比如Pod,Service等对象信息   Node组件:   kubelet:   kubelet

K8S组件功能介绍

南楼画角 提交于 2020-08-16 19:28:34
Master: etcd分布式键值存储系统。用于保存集群状态,比如Pod、Service等对象信息 kube-controller-manager 负责维护集群状态如故障检测,自动更新处理集群中常规后台任务,一个资源对应一个控制器,而ControllerManager就是负责管理这些控制器的。 kube-scheduler 负责资源调度根据调度算法为新创建的Pod选择一个Node节点 kube-apiserver Kubernetes API,集群的统一入口,各组件协调者,以HTTPAPI提供接口服务,所有对象资源的增删改查和监听操作都交给APIServer处理后再提交给Etcd存储。 Node: Kubelet kubelet是Master在Node节点上的Agent,管理本机运行容器的生命周期也负责volueme和网络的管理,比如创建容器、Pod挂载数据卷、下载secret、获取容器和节点状态等工作。kubelet将每个Pod转换成一组容器(CSI 存储CNI网络管理) kube-proxy 在Node节点上实现Pod网络代理,维护网络规则和四层负载均衡工作。 其他: Pod:Pod是最小部署单元,一个Pod由一个或多个容器组成,Pod中容器共享存储和网络,在同一台Docker主机上运行 Service : Service一个应用服务抽象

Kubernetes核心概念整理

拈花ヽ惹草 提交于 2020-08-16 10:25:45
组件概述 以下是组件图 图片来源于: 此处 Kubernetes采用Master/Slave架构,主要包含如下组件: Master组件包含 API Server:API Gateway,用于和所有的组件进行交互的节点; Controller Manager:业务逻辑的控制中⼼,包含各类控制器模块 Scheduler: 对Pod进行实际调度 ETCD: 用于存储所有Kubernetes的元数据,KV存储 Slave组件 Kubelet: Node和Pod⽣生命周期管理 Kube-Proxy: Pod的对外服务发现代理 cAdvisor:容器监控,目前集成到了kubelet组件中 一般通过kubectl提交命令,然后通过APIServer存储到ETCD,再由各个组件进行watch并做相关处理。 核心资源大图 Pod: 一组容器,是kubernetes系统中的最⼩的调度单元,是直接处理业务的Workload; 应⽤用配置: ConfigMap: 可以存储相关的应用配置信息; Secret: 一般用于存储应用的秘钥信息,通过base64进行编码; PVC: 应用的持久化存储; 应⽤用服务发现: Service: Pod对外服务的负载均衡 Endpoints: 和Service⼀一⼀一对应,表示Pods的IP/Port信息 相关控制器: Deployment : 用于无状态应用的生命周期管理

实战 03 spring cloud configuration server 控制配置

孤街浪徒 提交于 2020-08-16 08:23:05
传统的键配置信息写到文件的方式(xml, json) 是行不通的,因为当处理基于云的应用程序可能包含数百个微服务, 而且每个微服务可能有多个运行时服务实例. 这样就使得配置管理成了一个问题, 因为云环境中的应用程序和运维团队必须全力应付配置文件到哪去. 配置管理 隔离: 我们希望将服务配置信息与服务的实际物理部署完全分离, 应用程序配置不一样部署到服务实例中,相反, 在服务启动时,配置信息应该作为环境变量传递到正在启动的服务或中央仓库中读取. 抽象: 抽象服务接口背后的配置数据的访问。通过 REST 的 JSON 服务检索配置数据. 集中: 基于云的应用可能有数百个服务,将应用程序配置集中到尽可能少的存储库中. 稳定: 因为你的应用程序的配置信息与你部署的服务完全隔离和中心化, 无论你使用何种解决方案,都可以实现高可用和冗余。 应用程序配置数据需要跟踪和版本控制, 因为管理不善的应用配置是不易察觉的错误和意外中断的一个肥沃滋生地. 这里的 Configuration management service , 个人理解, 它本身也是一个微服务, 提供的也是 http restful API 接口, 而不是文件(xml, json) 有很多类似的产品, Etcd, Eureka, Consul, Spring Cloud configuration server, 我们使用的是

第一章 Kubernetes进阶之Kubernetes简介

你离开我真会死。 提交于 2020-08-16 07:19:09
  Kubernets是什么 Kubernets是Google在2014年开源的一个容器集群管理系统,简称k8s K8s用于容器化应用程序部署,扩展和管理 K8s提供了容器编排,资源编排,弹性伸缩,部署管理,服务发现等一系列功能 K8s的目标是让容器部署更加简单高效   Kubernets的特性 自我修复 弹性伸缩 自动部署和回滚 服务发现和负载均衡 机密和配置管理 存储编排 批处理   Kunernetes集群架构与组件   Master 组件:   kube-apiserver :   Kubernetes API 集群的统一入口,各组件的协调者,以RESTful API提供接口方式,所有的对象资源的   增删改查和监听操作都交给APIServer处理后再提交给etcd数据库做持久化存储   Kube-controller-manager   处理集群中常规后台任务,一个资源对应一个控制器,而controllerManager就是负责处理这些控制器的   kube-scheduler   根据调度算法为新创建的pod选择一个Node节点,可以任意部署,可以部署在同一个节点上,也可以部署在不同的节点上   etcd   分布式键值存储系统,用于保存集群状态数据,比如Pod,Service等对象信息   Node组件:   kubelet:   kubelet

附024.Kubernetes全系列大总结

≡放荡痞女 提交于 2020-08-16 07:18:12
Kubernetes全系列总结如下,后期不定期更新。 欢迎基于学习、交流目的的转载和分享,禁止任何商业盗用,同时希望能带上原文出处,尊重ITer的成果,也是尊重知识。 若发现任何错误或纰漏,留言反馈或右侧添加本人反馈。 正篇 001.Kubernetes简介 002.Kubernetes简单入门实例 003.Kubernetes二进制部署准备 004.Kubernetes二进制部署创建证书 005.Kubernetes二进制部署kubectl 006.Kubernetes二进制部署ETCD 007.Kubernetes二进制部署Flannel 008.Kubernetes二进制部署Nginx实现高可用 009.Kubernetes二进制部署kube-apiserver 010.Kubernetes二进制部署kube-controller-manager 011.Kubernetes二进制部署kube-scheduler 012.Kubernetes二进制部署worker节点Flannel 013.Kubernetes二进制部署worker节点Nginx实现高可用 014.Kubernetes二进制部署docker 015.Kubernetes二进制部署所有节点kubelet 016.Kubernetes二进制部署所有节点kube-proxy 017

如何设计一款“高可用高性能”的发号器?

空扰寡人 提交于 2020-08-16 06:49:55
云栖号资讯:【 点击查看更多行业资讯 】 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! ​ 背景 在分布式场景中,很多地方需要生成全局唯一的id,如数据库分库分表后需要用唯一id代替单机版本的自增id。发号器的基本要求是 全局唯一,无论如何都不能重复 某些场景下还要求单调递增,如排序需求等。 网上有很多介绍发号器的文章,比如美团的《Leaf——美团点评分布式ID生成系统》,有赞的《如何做一个靠谱的发号器》等。本文聚焦高可用,高性能 高可用:不会因为系统故障导致服务不可用或发号重复 高性能:发号器通常是一个非常高并发的系统,性能足够的同时也可以水平扩容 在基本的要求下,常见的解决方案有哪些?他们是否是高可用,高性能的呢? snowflake方案 snowflake 采用41位时间戳加10位机器id加12位序列号的方式生成,序列号在单一进程内可使用AtomicLong来生成,10位机器号可支持1024台机器 该算法优点是: 算法简单,易于实现,不依赖任何第三方系统,性能非常高; 集群无状态,可随意扩缩容,可认为是高可用系统。 缺点是: 高10位的时间戳和低位自增序列号可保证单调增,但机器号无法保证,如机器号为2在某一时刻先生成id,机器号为1在同一时刻后生成id,则不能保证单调性; 依赖时间戳,如果时钟回拨,可能会生成重复的id。综合来看

超详细实战教程丨多场景解析如何迁移Rancher Server

99封情书 提交于 2020-08-16 05:24:22
本文转自 Rancher Labs 作者介绍 王海龙,Rancher中国社区技术经理,负责Rancher中国技术社区的维护和运营。拥有6年的云计算领域经验,经历了OpenStack到Kubernetes的技术变革,无论底层操作系统Linux,还是虚拟化KVM或是Docker容器技术都有丰富的运维和实践经验。 Rancher提供两种安装方法,单节点和高可用安装。单节点安装允许用户快速部署适用于短期开发测试为目的的安装工作。高可用部署明显更适合Rancher的长期使用。 在实际使用中可能会遇到需要将Rancher Server迁移到其他的节点或local集群去管理的情况。 虽然可以使用最简单的import集群方式纳管,但带来的问题是后续无法做集群的管理和升级维护,而且一些namespace和project的关联关系将会消失。所以本文主要介绍如何将Rancher Server迁移到其他节点或local集群。 本文主要针对3个场景去讲解如何迁移Rancher Server: Rancher单节点安装迁移至其他主机 Rancher单节点安装迁移至高可用安装 Rancher高可用安装迁移至其他Local集群 重要说明 Rancher 官方文档文档中并没有说明支持以下场景的迁移,本文档只是利用一些Rancher和RKE现有的功能实现迁移。 如果您在此过程中遇到问题,则应该熟悉Rancher架构

k8s 容器内时间与服务器时间不一致的问题

时光怂恿深爱的人放手 提交于 2020-08-15 21:47:51
开发发现定时任务的执行时间和设置的时间相差8小时,之前处理方式是将错就错,后来发现这不是解决问题的办法所以上网找了找解决的方法 来到/etc/kubernetes/manifests目录,使用如下方式修改此目录下4个k8s的组件的时间 - mountPath: /etc/localtime name: date-config - hostPath: path: /etc/localtime name: date-config ## 修改完之后重启 k8s sudo systemctl restart kubelet sudo cat /etc/kubernetes/manifests/kube-apiserver.yam apiVersion: v1 kind: Pod metadata: annotations: kubeadm.kubernetes.io/kube-apiserver.advertise-address.endpoint: 192.168.10.120:6443 creationTimestamp: null labels: component: kube-apiserver tier: control-plane name: kube-apiserver namespace: kube-system spec: containers: - command: -