etcd

K8S(kubernetes)概述

烂漫一生 提交于 2020-05-02 18:32:22
Kubernetes概述 一、什么是K8S(Kubernetes)? 1.k8s全称kubernetes,这个名字大家应该都不陌生,k8s是为容器服务而生的一个可移植容器的编排管理工具,越来越多的公司正在拥抱k8s,并且当前k8s已经主导了云业务流程,推动了微服务架构等热门技术的普及和落地,正在如火如荼的发展。那么称霸容器领域的k8s究竟是有什么魔力呢? 2.首先,我们从容器技术谈起,在容器技术之前,大家开发用虚拟机比较多,比如vmware和openstack,我们可以使用虚拟机在我们的操作系统中模拟出多台子电脑(Linux),子电脑之间是相互隔离的,但是虚拟机对于开发和运维人员而言,存在启动慢,占用空间大,不易迁移的缺点。举一个我亲身经历过的场景吧,之前在vmware中开发了一个线下平台,为了保证每次能够顺利使用,我们就把这个虚拟机导出为OVF,然后随身携带,用的时候在服务器中部署,这里就充分体现了虚拟机的缺点。 接着,容器化技术应运而生,它不需要虚拟出整个操作系统,只需要虚拟一个小规模的环境即可,而且启动速度很快,除了运行其中应用以外,基本不消耗额外的系统资源。Docker是应用最为广泛的容器技术,通过打包镜像,启动容器来创建一个服务。但是随着应用越来越复杂,容器的数量也越来越多,由此衍生了管理运维容器的重大问题,而且随着云计算的发展,云端最大的挑战,容器在漂移。在此业务驱动下

Kubernetes---入门初体验

送分小仙女□ 提交于 2020-05-02 17:44:36
Kubernetes—入门初体验 一.什么是Kubernetes? 1.Kubernetes是Google在2014年开源的一-个容器集群管理系统,Kubernetes简称K8S。 2.K8S用于容器化应用程序的部署,扩展和管理。 3.K8S提供了容器编排,资源调度,弹性伸缩,部署管理,服务发现等一系列功能。 4.Kubernetes目标是让部署容器化应用简单高效。 5.k8s是一个有中心节点的架构集群,由master节点(至少三个)和nodes节点(运行容器的节点)组成,客户的启动容器等请求会先发给master节点,master节点有个调度器会分析node节点资源(cpu、内存)的可用状态,找到最佳适配的node来启动用户请求的容器。 官方网站: http://www.kubernetes.io 二.Kubernets的特性: 1.自动修复:在节点故障时重新启动失败的容器,替换和重新部署,保证预期的副本数量;杀死健康检查失败的容器,并且在为准备好之前不会处理客户端的请求,确保线上服务不中断。 2.弹性伸缩:使用命令、UI或者基于CPU的使用自动快速扩容和缩容应用程序实例,保证应用业务高峰并发时的高可用性;业务低峰时回收资源,以最小的成本运行服务。 3.自动部署和回滚:k8s采用滚动更新策略更新应用,一次更新一个Pod,而不是同时删除所有Pod,如果更新过程中出现问题,将回滚更改

Kubernetes V1.10 二进制部署集群

南楼画角 提交于 2020-05-02 14:29:54
1. 架构篇 1.1 kubernetes 架构说明 1.2 Flannel网络架构图 1.3 Kubernetes工作流程 2. 组件介绍 2.1 Master节点 2.1.1 、网关服务 API Server:提供Kubernetes API接口,主要处理REST操作以及更新ETCD中的对象。所有资源增删改查的唯一入口   只有API Server才直接操作etcd   其他模块通过API Server查询活修改数据   提供其他模块之间的数据交互和通信的枢纽 2.1.2、 调度器 Scheduler:资源调度,负责分配调度Pod到集群内的Node节点   监听kube - apiserver,查询还未分配Node的Pod   根据调度策略为这些Pod分配节点 2.1.3、 控制器 Controller Manager:所有其他群集级别的功能。目前由控制器Manager执行。资源对象的自动化控制中心。它通过apiserver监控整个集群的状态,并确保集群处于预期的工作状态。 2.1.4、 存储 ETCD:所有持久化的状态信息存储在ETCD中 2.2 Node节点 2.2.1、Kubelet:管理Pods以及容器、镜像、Volume等,实现对集群对节点的管理。 2.2.2、Kube- proxy:提供网络代理以及负载均衡,实现与Service通信。 2.2.3、 Docker

kubernetes基础概念知多少

…衆ロ難τιáo~ 提交于 2020-05-02 11:07:20
kubernetes(简称k8s)是一种用于在一组主机上运行和协同容器化应用程序的管理平台,皆在提供高可用、高扩展性和可预测性的方式来管理容器应用的生命周期。通过k8s,用户可以定义程序运行方式、部署升级策略、动态伸缩容,使得用户以一种更灵活可靠的方式来管理应用程序。 关于k8s,是一种对应用服务的打包、部署、监控等一整套生命周期的自动化管理平台,目前各大公司已在生产环境部署使用,同时k8s社区比较活跃,在未来一段时间内会越来越流行,可以说是以后服务部署的事实标准,对于Java开发者来说,你可以不直接使用它,但是不能不了解它。 总结来看,k8s特点如下: 自动装箱 :基于容器,结合调度策略将多种应用部署到同一节点上,提高资源利用率; 自我修复 :支持故障转移/重启,具有健康检查机制; 水平扩展 :通过命令手动执行扩容,可基于CPU等资源负载率来动态实现伸缩容; 服务发现/负载均衡 :通过KubeDNS(或CoreDNS)为系统内置了服务发现功能,为每个service配置DNS名称,service通过iptables或ipvs内建了负载均衡机制; 自动部署 :自动发布和回滚,支持灰度、增量发布等; 配置管理 :ConfigMap实现了配置数据与Docker镜像解耦,为开发部署提供了良好的灵活性; 批处理 :除了管理服务型应用之外,Kubernetes还支持批处理作业及CI(持续集成)

k8s集群证书过期(kubeadm 1.10.2 )

自古美人都是妖i 提交于 2020-05-02 11:05:33
1、k8s 集群架构描述 kubeadm v1.10.2创建k8s集群。 master节点高可用,三节点(10.18.60.3、10.18.60.4、10.18.60.5)。 LVS实现master三节点代理。 2、K8S集群证书过期,日志报错如下 Unable to authenticate the request due to an error: x509: certificate has expired or is not yet valid 3、故障排定,查看证书 # openssl x509 -noout -text -in apiserver-kubelet-client.crt | grep Not Not Before: May 22 01:58:06 2018 GMT Not After : May 22 01:58:07 2019 GMT    # 2019-5-22日过期    4、kubeadm 命令介绍(v1.10.2)    注: 本次只需用到以下两个参数命令,其它参数不做介绍 # kubeadm alpha phase certs -h         # 创建证书 Usage: kubeadm alpha phase certs [command] Available Commands: all Generates all PKI assets

Kubernetes安装配置指南(kubeadm工具安装)

亡梦爱人 提交于 2020-05-02 11:03:59
安装 Kubernetes对软件和硬件的系统要求 cpu和内存 master:至少2core4GB内存 Node:根据需求而定 Linux操作系统(关闭防火墙和selinux) 基于x86_64架构的各种Linux发行版本 推荐redhat7或Centos7 kernel版本3.10以上,推荐关闭交换空间的使用,swapoff -a,在/etc/fstab中注释掉swap的挂载。 etcd3.0版本及以上,推荐3.3版本 etcd下载地址: https://github.com/etcd-io/etcd/releases/download/v3.3.13/etcd-v3.3.13-linux-amd64.tar.gz Docker18.03版本及以上,推荐18.09版本 docker下载地址: https://download.docker.com/linux/centos/7/x86\_64/stable/Packages/docker-ce-18.03.1.ce-1.el7.centos.x86_64.rpm 使用kubeadm工具快速安装Kubernetes集群 1.首先配置yum源 官方yum源的地址为 https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64 。如果无法访问官方yum源的地址

002.使用kubeadm安装kubernetes 1.17.0

允我心安 提交于 2020-05-02 11:02:40
一 环境准备 1.1 环境说明 master 192.168.132.131 docker-server1 node1 192.168.132.132 docker-server2 node2 192.168.132.133 docker-server3 1.2 docker版本 [root@docker-server1 ~]# docker version Client: Docker Engine - Community Version: 19.03 . 5 API version: 1.40 Go version: go1. 12.12 Git commit: 633a0ea Built: Wed Nov 13 07 : 25 : 41 2019 OS /Arch: linux/ amd64 Experimental: false Server: Docker Engine - Community Engine: Version: 19.03 . 5 API version: 1.40 (minimum version 1.12 ) Go version: go1. 12.12 Git commit: 633a0ea Built: Wed Nov 13 07 : 24 : 18 2019 OS /Arch: linux/ amd64 Experimental: false

kubeadm 线上集群部署(三) K8S Master集群安装以及工作节点的部署

ぃ、小莉子 提交于 2020-05-02 10:31:56
PS:所有机器主机名请提前改好好 在上一篇,ETCD集群和nginx我们已经搭建成功了,下面我们需要搭建master相关组件,apiverser需要与etcd通信并操作 1.配置证书 将etcd证书上传到master节点,在etcd01上操作 USER=root export K8SHOST1=172.16.100.31 for HOST in ${K8SHOST1} do ssh ${USER}@${HOST} 'mkdir -p /etc/kubernetes/pki/etcd' scp -r /etc/kubernetes/pki/etcd/ca.crt ${USER}@${HOST}:/etc/kubernetes/pki/ scp /etc/kubernetes/pki/apiserver-etcd-client.crt ${USER}@${HOST}:/etc/kubernetes/pki/ scp /etc/kubernetes/pki/apiserver-etcd-client.key ${USER}@${HOST}:/etc/kubernetes/pki/ done 在k8s1上操作,在操作之前,我们已预先安装过单点k8s集群拿到了我们想要一的初始化环境,所以,下面有2种部署方式 第一种,环境没有得到初始化 初始化之前

kubenetes 入门系列安装之kubeadm安装

亡梦爱人 提交于 2020-05-02 08:36:08
kubenetes 入门系列安装之kubeadm安装 k8s的安装有多种方式,如yum安装,kubeadm安装,kubemini安装,二进制安装(生产环境多采用此方式精确控制安装)等。本文是入门系列验证,之前进行过yum安装,可以查看文章《 k8s入门系列之集群yum安装篇 》 。这里进行kubeadm安装一次了解安装过程,真正的学习、测试环境和生产环境都不建议此方法,都建议yum安装或者二进制安装,这样才可以详细了解到k8s的工作原理和工作过程 1,关闭防火墙服务,避免与docker容器的防火墙规则冲突。 systemctl stop firewalld systemctl disable firewalld 2,关闭selinux: 修改/etc/selinux/config为SELINUX=disabled 重启后配置生效。不建议临时关闭(setenfore 0),防止机器重启失效。 3,关闭swap: 临时关闭: swapoff -a 永久关闭: sed -i 's/.*swap.*/#&/' /etc/fstab 4,host定向,将机器内部主机名通信打通: vi /etc/hosts 192.168.92.139 master 192.168.92.132 node1 5,master机器设置免密钥登陆其他两个node ssh-keygen # 生成密钥对 cd

记一次从二进制部署的 k8s 集群 到 kubeadm 部署的 k8s 迁移测试

走远了吗. 提交于 2020-05-02 07:22:36
更好的阅读体验建议点击下方原文链接。 原文链接: http://maoqide.live/post/notes/upgrade-kubernets-from-binary-to-kubeadm/ 记一次从二进制部署的 k8s 集群 到 kubeadm 部署的 k8s 迁移测试。 原有 k8s 集群为二进制形式部署,集群管理不太方便,准备在集群升级的机会,将集群部署方式改为 kubeadm部署,本文记录测试迁移的过程。 <!--more--> 部署新的 master 集群 etcd 数据迁移 为了完全不影响原有集群的运行,将 etcd 也做迁移,新的 master 连接新的 etcd,不对老集群造成影响。 首先新建一个 etcd,并使用 etcd 的 make-mirror 功能将原有集群的 etcd 数据同步到新的etcd中。 # 新起一个 etcd,为了方便这里新建不带证书的 http 端口 docker run -d \ --name etcd \ --net host \ -v /data/etcd:/var/lib/etcd \ quay.io/coreos/etcd:v3.3.13 \ etcd --listen-client-urls http://0.0.0.0:2379 --advertise-client-urls http://0.0.0.0:2379 #