etcd

Kubeadm安装的K8S集群1年证书过期问题的解决思路

北城以北 提交于 2020-11-08 16:31:58
这个问题,很多使用使用kubeadm的用户都会遇到。 网上也有类似的帖子,从源代码编译这种思路, 在生产环境,有些不现实。 还是使用kubeadm的命令操作,比较自然一点。 当然,自行生成一套证书,也是在新安装集群里,可以考虑的方案。 =============================================== .问题起源 kubeadm 是 kubernetes 提供的一个初始化集群的工具,使用起来非常方便。但是它创建的apiserver、controller-manager等证书默认只有一年的有效期,同时kubelet 证书也只有一年有效期,一年之后 kubernetes 将停止服务。 官方推荐一年之内至少用 kubeadm upgrade 更新一次 kubernetes 系统,更新时也会自动更新证书。不过,在产线环境或者无法连接外网的环境频繁更新 kubernetes 不太现实。 我们可以在过期之前或之后,使用kubeadm alpha phase里的certs和kubeconfig命令,同时配合kubelet证书自动轮换机制来解决这个问题。 .认识认书 使用kubeadm创建完Kubernetes集群后, 默认会在/etc/kubernetes/pki目录下存放集群中需要用到的证书文件, 整体结构如下图所示: Kubernetes 集群根证书 /etc

Kubernetes/K8s架构师实战集训营【2020最新】

做~自己de王妃 提交于 2020-11-08 15:26:07
Kubernetes/K8s架构师实战集训营【2020最新】 下载地址: 百度云盘 这门课上线有 2 年多了,目前进行到 第11期,已有 800 多位学习,并实现了加薪和提升技能的目标,得到学员一致好评,好评率达99%! 为满足不同需求,这个架构课分为初中级和中高级两个阶段,也可根据需要选择学习。 虽说今年的大环境不是很好,但是从拉钩网招聘数据来看,K8s岗位薪资不降反而上涨不少!工作5年,薪资范围普遍 30k~40k 主要还是因为K8s大势所趋,大公司已经完成落地,正在不断迭代,需要这方面人才来支撑,小公司正在为迁移筹备,也需要这方面人才做主导;而K8s又是一个功能强大、生态完善的容器云平台,运维这个平台就需要具备非常强的专业能力,也就是说不是随便找个高级开发或者架构师就能替代该岗位的! 章节目录: 01 开班仪式 【回放】开班仪式:行情分析、内容综述及学习建议(7月28日 21:00-22:30) 02 赠送视频 【录播】搭建一个生产级K8S高可用集群(1)(33分钟) 【录播】搭建一个生产级K8S高可用集群(2)(95分钟) 【录播】搭建一个生产级K8S高可用集群(3)(106分钟) 【录播】搭建一个生产级K8S高可用集群(4)(36分钟) 【录播】Ansible入门(基本使用)(126分钟) 【录播】Ansible入门(Playbook&Roles详解)(147分钟) 03

kubernetes之监控Operator部署Prometheus(三)

a 夏天 提交于 2020-10-31 07:33:18
第一章和第二章中我们配置Prometheus的成本非常高,而且也非常麻烦。但是我们要考虑Prometheus、AlertManager 这些组件服务本身的高可用的话,成本就更高了,当然我们也完全可以用自定义的方式来实现这些需求,我们也知道 Promethues 在代码上就已经对 Kubernetes 有了原生的支持,可以通过服务发现的形式来自动监控集群,因此我们可以使用另外一种更加高级的方式来部署 Prometheus: Operator 框架。 什么是 Operator Operator是由 CoreOS 开发的,用来扩展Kubernetes API,特定的应用程序控制器,它用来创建、配置和管理复杂的有状态应用,如数据库、缓存和监控系统。Operator基于Kubernetes的资源和控制器概念之上构建,但同时又包含了应用程序特定的领域知识。创建Operator的关键是CRD(自定义资源)的设计。 Operator 是将运维人员对软件操作的知识给代码化,同时利用 Kubernetes 强大的抽象来管理大规模的软件应用。目前 CoreOS 官方提供了几种 Operator 的实现,其中就包括我们今天的主角: Prometheus Operator , Operator 的核心实现就是基于 Kubernetes 的以下两个概念: 资源:对象的状态定义 控制器:观测、分析和行动

Kubernetes 集群基于 Rook 搭建 Ceph 分布式存储系统

廉价感情. 提交于 2020-10-31 07:30:40
1、Rook & Ceph 介绍 1.1、Rook Rook 是专用于 Cloud-Native 环境的文件、块、对象存储服务。 它实现了一个自动管理的、自动扩容的、自动修复的分布式存储服务。 Rook 支持自动部署、启动、配置、分配、扩容/缩容、升级、迁移、灾难恢复、监控以及资源管理。 为了实现所有这些功能,Rook 需要依赖底层的容器编排平台,例如 kubernetes、CoreOS 等。 Rook 目前支持 Ceph、NFS、Minio Object Store、Edegefs、Cassandra、CockroachDB 存储的搭建,后期会支持更多存储方案。 1.2、Ceph Ceph 是一个开源的分布式存储系统,包括对象存储、块设备、文件系统。 它具有高可靠性、安装方便、管理简便、能够轻松管理海量数据。 Ceph 存储集群具备了企业级存储的能力,它通过组织大量节点,节点之间靠相互通讯来复制数据、并动态地重分布数据,从而达到高可用分布式存储功能 使用 Rook 可以轻松实现在 Kubernetes 上部署并运行 Ceph 存储系统,并且提供 Dashboard 供用户查看存储系统信息,Rook 跟 Kubernetes 集成关系示意图如下: 说明一下: Rook 提供了卷插件,来扩展了 K8S 的存储系统,使用 Kubelet 代理程序 Pod 可以挂载 Rook

Kubernetes动手系列:手把手教你10分钟快速部署集群

主宰稳场 提交于 2020-10-30 13:38:00
Kubernetes 动手系列 想通过一系列动手的 demo ,来帮助读者快速的理解上手 Kubernetes 一些运行机制。会包括如下内容: 手动部署 开发一个 operator 开发 webhook 开发 chart 包 开发 scheduler 开发 stroagecalss 开发 cloud provider virtual kubelet 本文要求读者对 Kubernetes 的架构和使用有基本的了解。 本文通过手工简单部署一个 K8S 集群来了解 K8S 整体的架构,以及内部组件的关系。 本文介绍的部署过程主要是为了让读者能够理解 K8S 的运行原理,为了简化流程,这里不涉及高可用、高性能等解决方案。 安装说明: 本文仅仅是在两个节点上部署所有的组件,如图所示包括 MASTER 和 NODE 所有的组件都安装在 /opt/{component} 的根目录下,包括二进制文件和配置文件 另外组件进程由 systemd 来管理,其配置文件在 /etc/systemd/system/{component}.service 本文所有的安装代码已经放在 https://github.com/bilc/kubernetes-deploy,供大家参考。 1 前期准备 配置环境变量文件 environment,如下,只修改 MASTER_IP 和 NODE_IP 即可。 export

Centos7部署k8s[v1.16]高可用[keepalived]集群

泪湿孤枕 提交于 2020-10-30 06:04:23
实验目的 一般情况下,k8s集群中只有一台master和多台node,当master故障时,引发的事故后果可想而知。 故本文目的在于体现集群的高可用,即当集群中的一台master宕机后,k8s集群通过vip的转移,又会有新的节点被选举为集群的master,并保持集群的正常运作。 因本文体现的是master节点的高可用,为了实现效果,同时因资源条件限制,故总共采用4台服务器完成本次实验,3台master,1台node。 看到这也需有人有疑惑,总共有4台机器的资源,为啥不能2台master呢?这是因为通过kubeadm部署的集群,当中的etcd集群默认部署在master节点上,3节点方式最多能容忍1台服务器宕机。如果是2台master,当中1台宕机了,直接导致etcd集群故障,以至于k8s集群异常,这些基础环境都over了,vip漂移等高可用也就在白瞎。 环境说明 基本信息 # 主机列表 10.2.2.137 master1 10.2.2.166 master2 10.2.2.96 master3 10.2.3.27 node0 # 软件版本 docker version:18.09.9 k8s version:v1.16.4 架构信息 本文采用kubeadm方式搭建集群,通过keepalived的vip策略实现高可用,架构图如下:    # 主备模式高可用架构说明 a

高可用Kubernetes集群-5. 部署flannel网络

白昼怎懂夜的黑 提交于 2020-10-29 21:02:54
七. 部署flannel网络 kubernetes支持基于vxlan方式的flannel与weave网络,基于BGP路由的Calico网络,本节采用flannel网络。 Flannel网络采用etcd等kv存储做集中控制,在每个host生成1个subnet,每个host上的subnet通过vxlan方式打通。 1. 创建flannel TLS证书与私钥 etcd集群启用了双向TLS认证,需要为flannel网络指定与etcd集群通信的CA与秘钥。 1) 创建flannel证书签名请求 [root@kubenode1 ~] # mkdir -p /etc/kubernetes/flannel [root@kubenode1 ~] # cd /etc/kubernetes/flannel/ [root@kubenode1 flannel] # touch flanneld-csr.json # hosts字段留空 [root@kubenode1 flannel] # vim flanneld-csr.json { " CN " : " flanneld " , " hosts " : [], " key " : { " algo " : " rsa " , " size " : 2048 }, " names " : [ { " C " : " CN " , " ST " : "

etcd集群添加节点

浪子不回头ぞ 提交于 2020-10-29 17:21:49
查看当前集群节点信息 # etcdctl member list -- write -out= table +------------------+---------+--------------------+--------------------------------+-----------------------------------------------------+------------+ | ID | STATUS | NAME | PEER ADDRS | CLIENT ADDRS | IS LEARNER | +------------------+---------+--------------------+--------------------------------+-----------------------------------------------------+------------+ | 44d8bc3300880bcd | started | sht-sgmhadoopdn- 01 | http: // sht-sgmhadoopdn-01:2380 | http://10.0.0.1 :2379, http://sht-sgmhadoopdn-01 :2379 | false | | d446fbe3296eb85a |

Kubernetes: 集群网络配置

戏子无情 提交于 2020-10-29 17:18:53
参考: [ Kubernetes 权威指南 ] <br> Kubernetes 集群搭建可以参考 [ Kubernetes : 多节点 k8s 集群实践 ] <br> 在多个 Node 组成的 Kubernetes 集群内, Kubernetes 本身不会对跨主机容器网络进行设置. flannel 就是解决跨主机容器间网络互通的需求. <br><br> Kubernetes 集群架构 Server List 节点名称 节点 IP k8s-master 10.10.10.10 k8s-node1 10.10.10.11 k8s-node2 10.10.10.12 <br> 节点服务说明 Master : etcd , kube-apiserver , kube-controller-manager, kube-scheduler. Node : docker, kubelet, kube-proxy <br><br> flannel 配置安装 flannel 安装于 kubernetes node 服务器上. 安装 flannel yum install flannel ln -sv /usr/libexec/flannel/mk-docker-opts.sh /usr/bin <br> 配置: /etc/sysconfig/flanneld 需要连接位于 master 上的

搞定 Kubernetes 基于flannel 的集群网络

為{幸葍}努か 提交于 2020-10-29 16:26:41
一、Docker网络模式 在讨论Kubernetes网络之前,让我们先来看一下Docker网络。Docker采用插件化的网络模式,默认提供bridge、host、none、overlay、maclan和Network plugins这几种网络模式,运行容器时可以通过–network参数设置具体使用那一种模式。 bridge :这是Docker默认的网络驱动,此模式会为每一个容器分配Network Namespace和设置IP等,并将容器连接到一个虚拟网桥上。如果未指定网络驱动,这默认使用此驱动。 host :此网络驱动直接使用宿主机的网络。 none :此驱动不构造网络环境。采用了none 网络驱动,那么就只能使用loopback网络设备,容器只能使用127.0.0.1的本机网络。 overlay :此网络驱动可以使多个Docker daemons连接在一起,并能够使用swarm服务之间进行通讯。也可以使用overlay网络进行swarm服务和容器之间、容器之间进行通讯, macvlan :此网络允许为容器指定一个MAC地址,允许容器作为网络中的物理设备,这样Docker daemon就可以通过MAC地址进行访问的路由。对于希望直接连接网络网络的遗留应用,这种网络驱动有时可能是最好的选择。 Network plugins :可以安装和使用第三方的网络插件。可以在Docker