coreos

一文带你快速入门etcd(万字长文)

≯℡__Kan透↙ 提交于 2021-02-17 19:01:44
2018年12月 etcd 作为孵化项目 CNCF(云原生计算基金会),几天前 CNCF 宣布 etcd 正式毕业,成为 CNCF 顶级项目。CNCF 官方表示 etcd 项目的采用率持续增加,也有稳定的治理流程,功能已达一定成熟度。 etcd 已经被许多公司用于实际生产,其中包括亚马逊、百度、思科、EMC、谷歌、阿里、华为、IBM、Red Hat、Uber、Verizon 等;而且其身影也出现在包括 Kubernetes、CoreDNS、M3、Rook 以及 TiKV 等项目当中。 前面的系列 etcd 文章已经部分介绍了 etcd。本文将会做一个快速入门的介绍,带领大家十分钟快速入门云原生存储组件 etcd,主要内容如下(本文较长,建议收藏): etcd 简介,以及其应用场景 etcd 的多种安装模式及高可用运维 etcd v3 的架构解析 etcdctl 的实践应用 1 etcd 介绍 2013 年 6 月,CoreOS 发起了 etcd 项目。etcd 使用 Go 语言实现,是分布式系统中重要的基础组件,目前最新版本为 V3.4.9。etcd 可以用来构建高可用的分布式键值数据库,根据官网介绍,总结来说有如下的特点: 简单:etcd 的安装简单,且为用户提供了 HTTP API,用户使用起来也很简单 存储:etcd 的基本功能,数据分层存储在文件目录中

01-Kubernetes背景介绍

痴心易碎 提交于 2021-02-10 11:36:13
什么是Kubernetes? Kubernetes产生的背景 Kubernetes的发展历程和应用现状 什么是Kubernetes? 生产级别的 容器 编排 系统 自动化的容器部署、扩展和管理 Kubernetes是用于自动部署,扩展和管理容器化应用程序的开源系统 借鉴Google内部的群集管理系统“Borg”(2014 EuroSys)和“Omega”(15年的生产环境应用经验) Google于2014年开源,捐献给云原生计算基金会(CNCF,Cloud Native Computing Foundation) Kubernetes意思 希腊语 驾驶员(Pivlot)或舵手(Helmsman) 一般简称k8s(K ubernete s) Kubernetes产生背景 我认为是两方面的流行 微服务 容器 容器 什么是容器? 一系列隔离运行的进程,提供了一种轻量操作系统层面的虚拟化技术 每个容器拥有自己的PID,Uscr,UTS,Network栈命名空间等 与传统VM比具有启动块、性能损耗小,更轻量等优点 Docker是目前使用最广,最成熟的容器技术 K8s默认使用Docker引擎 也可使用Rkt(CoreOS),或其他遵循CRI(continer runtime interface)的容器引擎,例如Containerd等 容器化系统面临的挑战 容器解决了应用打包、部署、运行的问题

CentOS安装etcd和flannel实现Docker跨物理机通信

北城余情 提交于 2021-02-08 13:36:17
1、安装etcd yum install etcd systemctl stop etcd systemctl start etcd systemctl status etcd systemctl enable etcd ##开机自启动 查看etcd是否启动成功,etcd默认端口为2379 $ lsof -i:2379 测试etcd可用性 $ etcd --version $ etcdctl mkdir /test $ etcdctl ls / 2、安装flannel $ wget https://github.com/coreos/flannel/releases/download/v0.5.5/flannel-0.5.5-linux-amd64.tar.gz $ tar xvf flannel-0.5.5-linux-amd64.tar.gz $ cd flannel-0.5.5 $ mv flanneld /usr/bin $ mv mk-docker-opts.sh /usr/bin 启动flannel方法一: $ flanneld & 查看flannel是否启动 $ ps -ef|grep flannel 启动flannel方法二(推荐):添加到systemd服务中 a、创建配置/etc/flannel/flanneld.conf $ mkdir -p /etc

etcd TLS 部署 flanneld

拜拜、爱过 提交于 2021-01-24 10:09:13
1.首先使用cfssl 生成相关证书文件 参考 https://coreos.com/os/docs/latest/generate-self-signed-certificates.html 2.etcd.service文件 [Unit] Description=Etcd Server [Service] Type=notify #WorkingDirectory=/home/etcd_data #EnvironmentFile=-/root/etcd-v3.3.9-linux-amd64/etcd.conf ExecStart=/root/etcd-v3.3.9-linux-amd64/etcd --name infra0 \ --initial-advertise-peer-urls https://xxx.xxx.xxx.xxx:2380 \ --listen-peer-urls https://xxx.xxx.xxx.xxx:2380 \ --listen-client-urls https://xxx.xxx.xxx.xxx:2379,https://127.0.0.1:2379 \ --advertise-client-urls https://xxx.xxx.xxx.xxx:2379 \ --initial-cluster infra0=https://xxx

Containers not restarted after update with restart always in docker-compose.yml

自作多情 提交于 2021-01-19 06:36:48
问题 I have some containers which all of them have the always restart value in the docker-compose file like this: version: "3.7" services: container: image: ghost:latest container_name: some_container restart: always depends_on: - ... ports: - ... ... As soon as the OS (Flatcar Linux / CoreOS) has updated itself none of the containers restart. But if I just do $ sudo docker ps all of the containers starts at once. Whats up with that and how do I fix it so my containers automatically restarts after

Containers not restarted after update with restart always in docker-compose.yml

做~自己de王妃 提交于 2021-01-19 06:36:11
问题 I have some containers which all of them have the always restart value in the docker-compose file like this: version: "3.7" services: container: image: ghost:latest container_name: some_container restart: always depends_on: - ... ports: - ... ... As soon as the OS (Flatcar Linux / CoreOS) has updated itself none of the containers restart. But if I just do $ sudo docker ps all of the containers starts at once. Whats up with that and how do I fix it so my containers automatically restarts after

Linux PID 1 和 Systemd

末鹿安然 提交于 2021-01-14 07:10:34
要说清 Systemd,得先从Linux操作系统的启动说起。Linux 操作系统的启动首先从 BIOS 开始,然后由 Boot Loader 载入内核,并初始化内核。内核初始化的最后一步就是启动 init 进程。这个进程是系统的第一个进程,PID 为 1,又叫超级进程,也叫根进程。它负责产生其他所有用户进程。所有的进程都会被挂在这个进程下,如果这个进程退出了,那么所有的进程都被 kill 。如果一个子进程的父进程退了,那么这个子进程会被挂到 PID 1 下面。(注:PID 0 是内核的一部分,主要用于内进换页,参看: Process identifier ) SysV Init PID 1 这个进程非常特殊,其主要就任务是把整个操作系统带入可操作的状态。比如:启动 UI – Shell 以便进行人机交互,或者进入 X 图形窗口。传统上,PID 1 和传统的 Unix System V 相兼容的,所以也叫 sysvinit ,这是使用得最悠久的 init 实现。Unix System V 于1983年 release。 在 sysvint 下,有好几个运行模式,又叫 runlevel 。比如:常见的 3 级别指定启动到多用户的字符命令行界面,5 级别指定启起到图形界面,0 表示关机,6 表示重启。其配置在 /etc/inittab 文件中。 与此配套的还有 /etc/init.d/

K8s二进制部署-flanneld报(Couldn‘t fetch network config)

心不动则不痛 提交于 2020-12-17 07:56:15
1、报错提示 将网络配置信息写入了ETCD中,启动flanneld测试时一直报错,具体报错如下: [root@master1 ~]# tail -100f /var/log/messages Dec 15 23:39:22 localhost flanneld: E1215 23:39:22.688405 31176 main.go:382] Couldn't fetch network config: 100: Key not found (/coreos.com) [10] Dec 15 23:39:23 localhost flanneld: timed out Dec 15 23:39:23 localhost flanneld: E1215 23:39:23.701707 31176 main.go:382] Couldn't fetch network config: 100: Key not found (/coreos.com) [10] Dec 15 23:39:24 localhost flanneld: timed out Dec 15 23:39:24 localhost flanneld: E1215 23:39:24.717330 31176 main.go:382] Couldn't fetch network config: 100: Key not

老司机谈DevOps 2.0:引子

自闭症网瘾萝莉.ら 提交于 2020-12-08 05:14:57
本文译自《 DevOps2.0的工具集(DevOps黑宝书)——打造自动化的持续交付流程》一书 ,转自译者CSDN博客,转载请注明出处。 译者的话: 你真的懂DevOps么?你知道怎么就持续集成持续部署又微服务了么,用时下流行的工具,实践DevOps怎么搞……跟着我,听老司机818 DevOps的那些事儿。 本文只是开个头儿…… 原著作者介绍: Viktor Farcic CloudBees资深顾问,熟悉多种编程语言,从最早的Pascal,Basic,ASP,C,C++,Perl,Python,ASP,NET,Visual Basic,C#,JavaScript等等。热衷于微服务、持续部署和测试驱动开发(TDD)。著有《Test-Driven Java Development》一书,该书由Packt出版。 DevOps理念 做小型的新项目感觉很棒,上一次我做这样的项目还是在2015年的夏天。虽然那个项目有不少问题,但做起来确实很高兴。因为在做这种小型而且相对来说比较新的项目产品时,我们可以按照自己的喜好选择技术手段、方法策略以及整体框架等。 我们能用微服务么?当然可以!我们能试试Polymer和GoLang么?必须的!无拘无束自由自在的做项目真的很爽。虽然我们或许会做错误的决定,而且这个决定可能会让我们的进度延缓一周,但起码不会像其他项目那样,一着不慎满盘皆输。简单来说

Kubernetes RBAC - forbidden attempt to grant extra privileges

ぐ巨炮叔叔 提交于 2020-12-05 19:11:18
问题 I'm using Kubernetes v1.8.14 on custom built CoreOS cluster: $ kubectl version --short Client Version: v1.10.5 Server Version: v1.8.14+coreos.0 When trying to create the following ClusterRole : $ cat ClusterRole.yml --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: labels: kubernetes.io/bootstrapping: rbac-defaults name: system:coredns rules: - apiGroups: - "" resources: - endpoints - services - pods - namespaces verbs: - list - watch I get the following error: $