etcd

Kubadm 部署K8S

隐身守侯 提交于 2019-11-26 02:32:52
K8s 部署方式: 1、二进制安装/yum安装 2、kubeadm 安装 master节点安装组件: docker、kubelet、kubeadm kube-proxy 是 动态的可被k8s 管理的pod api-server、kube-controller、etcd、 是托管在pod node节点组件 docker、kubelet kube-proxy 是 动态的可被k8s 管理的pod flannel 是 动态的可被k8s 管理的pod 其他组件都是托管在docker之中。 环境: master:192.168.64.100 node1: 192.168.64.101 初始化环境: 1、基于主机名通讯 2、时间同步 3、防火墙关闭 4、swapoff -a && sysctl -w vm.swappiness=0 1、在 master 和node节点安装 yum install docker-ce kubelet kubeadm kubectl -y 2、更改docker 默认拉取镜像的源,并启动docker服务 vim /usr/lib/systemd/system/docker.service [Service] Type=notify the default is not to use systemd for cgroups because the delegate

kubeadm源码分析

*爱你&永不变心* 提交于 2019-11-26 02:27:55
k8s离线安装包 三步安装,简单到难以置信 kubeadm源码分析 说句实在话,kubeadm的代码写的真心一般,质量不是很高。 几个关键点来先说一下kubeadm干的几个核心的事: kubeadm 生成证书在/etc/kubernetes/pki目录下 kubeadm 生成static pod yaml配置,全部在/etc/kubernetes/manifasts下 kubeadm 生成kubelet配置,kubectl配置等 在/etc/kubernetes下 kubeadm 通过client go去启动dns kubeadm init 代码入口 cmd/kubeadm/app/cmd/init.go 建议大家去看看cobra 找到Run函数来分析下主要流程: 如果证书不存在,就创建证书,所以如果我们有自己的证书可以把它放在/etc/kubernetes/pki下即可, 下文细看如果生成证书 if res, _ := certsphase.UsingExternalCA(i.cfg); !res { if err := certsphase.CreatePKIAssets(i.cfg); err != nil { return err } 创建kubeconfig文件 if err := kubeconfigphase.CreateInitKubeConfigFiles

kubeadm安装Kubernetes1.15安装部署详解-Part 2

萝らか妹 提交于 2019-11-26 01:17:33
前提 Kubernetes发布了今年第二大版本 Kubernetes 1.15,此次版本共更新加强了25个相关功能,其中2个升级到GA版本,13个升级到beta版,10个alpha版。 Kubernetes 从1.14版本开始引入了新功能,用于动态地将主节点添加到群集。无需在节点之间复制证书和密钥,从而减轻了自举过程中的额外编排和复杂性。本文就使用这个新特性进行部署。整体部署过程多快好省! 初始化群集并系统环境 (所有节点上进行如下操作) 1.设置主机名hostname,管理节点设置主机名为 master 。 2.编辑 /etc/hosts 文件,添加域名解析。 3.关闭防火墙、selinux和swap。 4.配置内核参数,将桥接的IPv4流量传递到iptables的链 5.配置国内yum源 yum install -y wget mkdir /etc/yum.repos.d/bak && mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.tencent.com/repo/centos7_base.repo wget -O /etc/yum.repos.d/epel.repo http://mirrors

kubeadm创建高可用kubernetes v1.12.0集群

跟風遠走 提交于 2019-11-26 00:55:33
节点规划 主机名 IP Role k8s-master01 10.3.1.20 etcd、Master、Node、keepalived k8s-master02 10.3.1.21 etcd、Master、Node、keepalived k8s-master03 10.3.1.25 etcd、Master、Node、keepalived VIP 10.3.1.29 None 版本信息: OS::Ubuntu 16.04 Docker:17.03.2-ce k8s:v1.12 来自官网的高可用架构图 高可用最重要的两个组件: etcd:分布式键值存储、k8s集群数据中心。 kube-apiserver:集群的唯一入口,各组件通信枢纽。apiserver本身无状态,因此分布式很容易。 其它核心组件: controller-manager和scheduler也可以部署多个,但只有一个处于活跃状态,以保证数据一致性。因为它们会改变集群状态。 集群各组件都是松耦合的,如何高可用就有很多种方式了。 kube-apiserver有多个,那么apiserver客户端应该连接哪个了,因此就在apiserver前面加个传统的类似于haproxy+keepalived方案漂个VIP出来,apiserver客户端,比如kubelet、kube-proxy连接此VIP。 安装前准备 1

AWS RHEL/CentOS 7快速安装配置OpenShift 3.11

萝らか妹 提交于 2019-11-26 00:46:26
OpenShift简介 微服务架构应用日渐广泛,Docker和Kubernetes技术是不可或缺的。Red Hat OpenShift 3是建立在Docker和Kubernetes基础之上的容器应用平台,用于开发和部署企业应用程序。 OpenShift版本 OpenShift Dedicated(Enterprise) Private, high-availability OpenShift clusters hosted on Amazon Web Services or Google Cloud Platform Delivered as a hosted service and supported by Red Hat OpenShift Container Platform(Enterprise) Across cloud and on-premise infrastructure Customizable, with full administrative control OKD OpenShift开源社区版(Origin Community Distribution of Kubernetes) OpenShift架构 Master Node提供的组件:API Server (负责处理客户端请求, 包括node、user、

虚拟机上利用OpenStack搭建私有云(queens)

若如初见. 提交于 2019-11-26 00:44:22
OpenStack项目主要提供:计算服务、存储服务、镜像服务、网络服务,均依赖于身份认证keystone的支撑。其中的每个项目可以拆开部署,同一项目也可以部署在多台=物理机上,并且每个服务都提供了应用接口程序(API),方便与第三方集成调用资源。 环境准备 安装openstack环境的硬件需求 CPU 支持intel 64或AMD 64 CPU扩展,并启用AMD-H或intel VT硬件虚拟化支持的64位x86处理器 内存 >=2G 磁盘空间 >=50G 虚拟机分配 主机名 操作系统 IP地址 备注 controller CentOS-7.4-x86_64 172.16.10.33 控制节点 compute CentOS-7.4-x86_64 172.16.10.35 计算节点 cinder CentOS-7.4-x86_64 172.16.10.36 块存储节点 关闭虚拟机防火墙及selinux systemctl disable firewalld.service systemctl stop firewalld.service vim /etc/sysconfig/selinux SELINUX=disable //将enforcing修改为disable,永久关闭 setenforce 0 搭建OpenStack 环境准备 在接下来的操作中若无特别说明

kubernetes-1.11.0集群部署之node集群 (三)

徘徊边缘 提交于 2019-11-25 23:49:14
kubernetes-1.11.0集群部署之node集群 (三) Node 配置 单Node 部分需要部署的组建有docker,calico,kubelet,kube-proxy这几个组件。Node 节点基于nginx 负载API 做Master HA 在每个node 上启动一个nginx,每个nginx 反向代理所有的api server; node 上kubelet kube-proxy 连接本地的nginx 代理端口 当nginx 发现无法链接后端时会自动剔除有问题的api server,从而实现api server 的HA。 创建kebe-proxy 证书 vim kube-proxy-csr.json { "CN": "system:kube-proxy", "hosts": [], "key": { "algo": "rsa", "size": 2048 }, "names": [ { "C": "CN", "ST": "BeiJing", "L": "BeiJing", "O": "k8s", "OU": "System" } ] } 生成kube-proxy 证书和私钥 cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=config.json -profile=kubernetes kube-proxy-csr

Kubernetes学习之路(一)之Kubeadm部署K8S集群

不问归期 提交于 2019-11-25 23:44:29
一个星期会超过多少阅读量呢??发布一篇,看看是否重新在51上写学习博文,有老铁支持嘛?? 使用kubeadm部署集群 节点名称 ip地址 部署说明 Pod 网段 Service网段 系统说明 k8s-master 192.168.56.11 docker、kubeadm、kubectl、kubelet 10.244.0.0/16 10.96.0.0/12 Centos 7.4 k8s-node01 192.168.56.12 docker、kubeadm、kubelet 10.244.0.0/16 10.96.0.0/12 Centos 7.4 k8s-node02 192.168.56.13 docker、kubeadm、kubelet 10.244.0.0/16 10.96.0.0/12 Centos 7.4 1、配置kubernetes源 [root@k8s-master ~]# cd /etc/yum.repos.d/ 配置阿里云的源:https://opsx.alibaba.com/mirror [root@k8s-master yum.repos.d]# wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo  #配置dokcer源 [root@k8s-master ~]# cat <

Golang的配置信息处理框架Viper

泪湿孤枕 提交于 2019-11-25 23:21:50
Viper 项目地址: https://github.com/spf13/viper 本文翻译自该项目里README.md文件中的内容 有很多Go语言项目用到了Viper框架,比如: Hugo EMC RexRay Imgur’s Incus Nanobox/Nanopack Docker Notary BloomApi doctl Clairctl 什么是Viper Viper是一个方便Go语言应用程序处理配置信息的库。它可以处理多种格式的配置。它支持的特性: 设置默认值 从JSON、TOML、YAML、HCL和Java properties文件中读取配置数据 可以监视配置文件的变动、重新读取配置文件 从环境变量中读取配置数据 从远端配置系统中读取数据,并监视它们(比如etcd、Consul) 从命令参数中读物配置 从buffer中读取 调用函数设置配置信息 为什么要使用Viper 在构建现代应用程序时,您不必担心配置文件格式; 你可以专注于构建出色的软件。 Viper 可以做如下工作: 加载并解析JSON、TOML、YAML、HCL 或 Java properties 格式的配置文件 可以为各种配置项设置默认值 可以在命令行中指定配置项来覆盖配置值 提供了别名系统,可以不破坏现有代码来实现参数重命名 可以很容易地分辨出用户提供的命令行参数或配置文件与默认相同的区别

kubernetes集群版本升级攻略

回眸只為那壹抹淺笑 提交于 2019-11-25 23:11:23
kubbernetes版本兼容性 在升级之前你需要了解各版本间的关系: kubernetes版本命名方式表示为XYZ,其中X表示主要版本,Y表示次要版本,Z表示补丁版本。 比如 1.16.0 K8s所有组件 kube-controller,kube-scheduler,kubelet的版本号不得高于kube-apiserver的版本号。 这些组件的版本号可低于kube-apiserver的1个次要版本,比如kube-apierver是1.16.0,其它组件的版本可以为1.16.x和1.15.x。 在一个HA集群中,多个kube-apiserver间的版本号最多只能相差一个次版本号,比如 1.16和1.15。 最好所有组件与kube-apiserver版本号完全一致。 因此升级Kubernetes集群时,最先升级的核心组件就是kube-apiserver。 且只能向上升级为一个次要版本。 kubectl版本最多只能比kube-apiserver高或低一个次版本号。 宏观升级流程 升级主控制平面节点。 升级其他控制平面节点。 升级Node节点。 微观升级步骤 先升级kubeadm版本 升级第一个主控制平面节点Master组件。 升级第一个主控制平面节点上的kubelet及kubectl。 升级其它控制平面节点。 升级Node节点 验证集群。 升级注意事项