etcd

从零开始入门 K8s | 应用编排与管理:Job & DaemonSet

∥☆過路亽.° 提交于 2019-11-30 15:02:34
一、Job 需求来源 Job 背景问题 首先我们来看一下 Job 的需求来源。我们知道 K8s 里面,最小的调度单元是 Pod,我们可以直接通过 Pod 来运行任务进程。这样做将会产生以下几种问题: 我们如何保证 Pod 内进程正确的结束? 如何保证进程运行失败后重试? 如何管理多个任务,且任务之间有依赖关系? 如何并行地运行任务,并管理任务的队列大小? Job:管理任务的控制器 我们来看一下 Kubernetes 的 Job 为我们提供了什么功能: 首先 kubernetes 的 Job 是一个管理任务的控制器,它可以创建一个或多个 Pod 来指定 Pod 的数量,并可以监控它是否成功地运行或终止; 我们可以根据 Pod 的状态来给 Job 设置重置的方式及重试的次数; 我们还可以根据依赖关系,保证上一个任务运行完成之后再运行下一个任务; 同时还可以控制任务的并行度,根据并行度来确保 Pod 运行过程中的并行次数和总体完成大小。 用例解读 我们根据一个实例来看一下Job是如何来完成下面的应用的。 Job 语法 上图是 Job 最简单的一个 yaml 格式,这里主要新引入了一个 kind 叫 Job,这个 Job 其实就是 job-controller 里面的一种类型。 然后 metadata 里面的 name 来指定这个 Job 的名称,下面 spec.template

How to access kubernetes keys in etcd

て烟熏妆下的殇ゞ 提交于 2019-11-30 13:40:16
Question How to get the Kubernetes related keys from etcd? Tried to list keys in etcd but could not see related keys. Also where is etcdctl installed? $ etcdctl bash: etcdctl: command not found.. $ sudo netstat -tnlp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 127.0.0.1:2379 0.0.0.0:* LISTEN 386/etcd tcp 0 0 127.0.0.1:2380 0.0.0.0:* LISTEN 386/etcd $ curl -s http://localhost:2379/v2/keys | python -m json.tool { "action": "get", "node": { "dir": true } } Background Installed Kubernetes 1.8.5 by following Using

二进制安装k8s v1.12.7

为君一笑 提交于 2019-11-30 12:58:15
开篇 一、 虚拟机规划 1、 master 集群 IP 主机名 日期 / 时间同步 192.168.1.164 k8s2-master1 server 端 192.168.1.140 k8s2-master2 client 端 192.168.1.122 k8s2-master3 client 端 2 、 node 集群 IP 主机名 日期 / 时间同步 192.168.1.146 k8s2-node1 client 端 192.168.1.231 k8s2-node2 client 端 192.168.1.221 k8s2-node3 client 端 3 、 etcd 集群 IP 主机名 日期 / 时间同步 192.168.1.226 etcd1 client 端 192.168.1.228 etcd2 client 端 192.168.1.229 etcd3 client 端 二、 安装环境 系统版本: centos 7.6 (最简安装) 内核版本: 3.10.0-957.el7.x86_64 三、 安装前的准备工作 1、所有节点做时间主从同步 l 安装 ntp 服务 yum -y install ntp l 服务端(一台)安装 chrony 服务 yum -y install chrony l 修改配置文件 ( 在服务端操作,就是你需要同步的服务器 ) vi /etc

Kubernetes Dashboard 终结者:KubeSphere

女生的网名这么多〃 提交于 2019-11-30 10:01:16
> 原文链接: Kubernetes Dashboard 终结者:KubeSphere 2018 年 7 月份,青云在 Cloud Insight 云计算峰会上推出了一款全新的容器平台—— KubeSphere ,旨在帮助企业快速低成本管理容器。并且 KubeSphere 本身是开源的,它是基于 Kubernetes 构建的分布式、多租户、企业级开源容器平台,具有强大且完善的网络与存储能力,并通过极简的人机交互提供完善的多集群管理、CI / CD 、微服务治理、应用管理等功能,帮助企业在云、虚拟化及物理机等异构基础设施上快速构建、部署及运维容器架构,实现应用的敏捷开发与全生命周期管理。 KubeSphere 目前最新的版本为高级版 2.0.2 ,并且所有版本 100% 开源。它的 Dashboard 是这个样子的: <center><p id="small">KubeSphere 主界面</p></center> <center><p id="small">Istio 微服务治理界面</p></center> <center><p id="small">多维度监控界面</p></center> 这个颜值,比 Kubernetes Dashboard 不知道高到哪里去了,感兴趣的小伙伴可以给一个 Github Star 鼓励一下开发小哥。访问官网请戳这里: kubesphere.io

从0到1使用Kubernetes系列(三)——使用Ansible安装Kubernetes集群

大兔子大兔子 提交于 2019-11-30 09:53:21
上一篇文章《 从0到1使用Kubernetes系列(二):安装工具介绍 》中,说到了Ansible的功能以及使用Ansible进行集群部署的优势,接下来将在本文中介绍如何通过Virtualbox + Vagrant启动CentOS虚拟机,并且使用ansible脚本在虚拟机中搭建kubernetes集群以及现有集群如何添加新的节点。 启动虚拟机 首先,通过下面命令克隆并进入项目: git clone https://github.com/choerodon/kubeadm-ansible.git && cd kubeadm-ansible 通过 Virtualbox + Vagrant启动三台CentOS系统虚拟机,在项目根目录中有编写好的Vagrantfile文件,直接使用就可以了。 Vagrantfile文件如下: Vagrant.configure(2) do |config| (1..3).each do |i| config.vm.define "node#{i}" do |s| s.vm.box = "bento/centos-7.3" s.vm.box_url = "http://file.choerodon.com.cn/vagrant/box/bento_centos-7.3.box" s.vm.hostname = "node#{i}" n = 10 + i s

How to configure dynamic properties while using spring boot?

被刻印的时光 ゝ 提交于 2019-11-30 08:24:53
I'm planning to use Spring Boot for my assignment. Its a typical server application with connection to database. I know I can use Spring Configuration to externalize my properties e.g. db connection details. But I also have other dynamic properties which needs be updated at runtime. e.g. flippers/feature flags. Certain features of my application needs to be controlled dynamically e.g. imagine a property like app.cool-feature.enable=true and then after a while the same feature would be turned off by app.cool-feature.enable=false Any suggestions what is the best practice around ingesting such

Using etcd as primary store/database?

别等时光非礼了梦想. 提交于 2019-11-30 08:00:11
Can etcd be used as reliable database replacement? Since it is distributed and stores key/value pairs in a persistent way, it would be a great alternative nosql database. In addition, it has a great API. Can someone explain why this is not a thing? etcd etcd is a highly available key-value store which Kubernetes uses for persistent storage of all of its objects like deployment, pod, service information. etcd has high access control, that it can be accessed only using API in master node. Nodes in the cluster other than master do not have access to etcd store. nosql database There are currently

降低 80% 的读写响应延迟!我们测评了 etcd 3.4 新特性(内含读写发展史)

孤街醉人 提交于 2019-11-30 07:47:24
导读: etcd 作为 K8s 集群中的存储组件,读写性能方面会受到很多压力,而 etcd 3.4 中的新特性将有效缓解压力,本文将从 etcd 数据读写机制的发展历史着手,深入解读 etcd 3.4 新特性。 背景 etcd 是 Kubernetes 集群中存储元数据,保证分布式一致性的组件,它的性能往往影响着整个集群的响应时间。而在 K8s 的使用中,我们发现除了日常的读写压力外,还存在某些特殊的场景会对 etcd 造成巨大的压力,比如 K8s 下 apiserver 组件重启或是其他组件绕过 apiserver cache 直接查询 etcd 最新数据的情况时,etcd 会收到大量的 expensive read(后文会介绍该概念)请求,这对 etcd 读写会造成巨大的压力。更为严重的是,如果客户端中存在失败重试逻辑或客户端数目较多,会产生大量这样的请求,严重情况可能造成 etcd crash。 etcd 3.4 中增加了一个名为“Fully Concurrent Read”的特性,较大程度上解决了上述的问题。在这篇文章中我们将重点解读它。本篇文章首先回顾 etcd 数据读写机制发展的历史,之后剖析为何这个特性能大幅提升 expensive read 场景下 etcd 的读写性能,最后通过真实实验验证该特性的效果。 etcd 读写发展历史 etcd v3.0 及之前早期版本

etcd集群部署

喜欢而已 提交于 2019-11-30 07:02:36
简介 etcd是一个分布式可靠的键值存储,用于分布式系统的最关键数据,用Go编写的,使用Raft一致性算法来管理高度可用的复制日志重点是: 简单 :定义明确,面向用户的API(gRPC) 安全 :具有可选客户端证书身份验证的自动TLS 快速 :基准测试10,000次/秒 可靠 :使用Raft正确分布 官网: https://etcd.io/ github: https://github.com/etcd-io/etcd 安装方式 架构:三个节点的etcd集群(192.168.56.10,192.168.56.20,192.168.56.30),试试二进制部署kubernetes,以便熟悉各个组件之间的联系 系统均为centos 7.* x64 。参考学习于(马哥,李振良,dotbalo等人的视频或博客,谢谢) 下载cfssl来生成证书 wget https://pkg.cfssl.org/R1.2/cfssl_linux-amd64 wget https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64 wget https://pkg.cfssl.org/R1.2/cfssl-certinfo_linux-amd64 chmod +x cfssl_linux-amd64 cfssljson_linux-amd64 cfssl-certinfo