1.在mfyxw50机器上分别下载如下几个文件:cfssl.cfssl-json.cfssl-certinfo cfssl下载连接地址: https://pkg.cfssl.org/R1.2/cfssl_linux-amd64 cfssl-json下载连接地址: https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64 cfssl-certinfo下载连接地址:https://pkg.cfssl.org/R1.2/cfssl-certinfo_linux-…
Flannel简介 ​ Flannel是CoreDNS团队针对Kubernetes设计的一个网络规划服务,简单来说,它的功能是让集群中的不同节点主机创建的Docker容器都具有全集群唯一的虚拟IP地址.但在默认的Docker配置中,每个Node的Docker服务会分别负责所在节点容器的IP分配.Node内部的容器之间可以互相访问,但是不能跨主机(Node)网络相互间是不能直接通信的.Flannel设计目的就是为集群中所有节点重新规划IP地址的使用规则,从而使得在不同的节点上的容器能够获得"同属一…
kube-apiserver集群规划 主机名 角色 IP地址 mfyxw30.mfxyw.com kube-apiserver主 192.168.80.30 mfyxw40.mfyxw.com kube-apiserver从 192.168.80.40 温馨提示:这里部署文档以mfyxw30.mfyxw.com主机为例,另外两台主机安装部署方法类似 1.下载kubernetes软件 kubernetes的github链接:https://github.com/kubernetes kuberne…
在实际生产环境中,部署好的集群稳定就行了,但是,如果需要使用到新的功能或当前版本出现了严重的漏洞,都建议做升级,本教程是将node节点从v1.15.10版本平滑升级到v1.15.12版本,如果升级到相对应的版本后,发现不稳定的情况,也可以通过相同的方法进行降级,不管是升级还是降级,都需要一台升级/降级好后再对下一台进行操作,不建议一起进行 1.查看原集群的Node节点的版本号 在master上(mfyxw30.mfyxw.com或mfyxw40.mfyxw.com)任意一台主机执行命令 [roo…
kube-proxy是Kubernetes的核心组件,部署在每个Node节点上,它是实现Kubernetes Service的通信与负载均衡机制的重要组件; kube-proxy负责为Pod创建代理服务,从apiserver获取所有server信息,并根据server信息创建代理服务,实现server到Pod的请求路由和转发,从而实现K8s层级的虚拟转发网络 在k8s中,提供相同服务的一组pod可以抽象成一个service,通过service提供的统一入口对外提供服务,每个service都有一个…
集群规划 主机名 角色 IP地址 mfyxw30.mfyxw.com kubelet 192.168.80.30 mfyxw40.mfyxw.com kubelet 192.168.80.40 注意:这里部署文档以mfyxw30.mfyxw.com主机为例,另外一台运算节点安装部署方法类似 1.创建生成kubelet证书签名请求(csr)的JSON配置文件 在运维主机mfyxw50.mfyxw.com上操作 [root@mfyxw50 cert]#cat > /opt/certs/kubelet…
Etcd是Kubernetes集群中的一个十分重要的组件,用于保存集群所有的网络配置和对象的状态信息. 整个kubernetes系统中一共有两个服务需要用到etcd用来协同和存储配置,分别是 网络插件flannel.对于其它网络插件也需要用到etcd存储网络的配置信息 kubernetes本身,包括各种对象的状态和元信息配置 Etcd是CoreOS基于Raft开发的分布式key-value存储,可用于服务发现.共享配置以及一致性保障(如数据库选主.分布式锁等) ETCD的主要功能: 基本的key…
在IP地址为192.168.80.50,机器名为mfyxw50上搭建私有仓库harbor harbor下载地址: harbor下载连接地址:https://github.com/goharbor/harbor/releases/tag/v1.10.0 平时访问GitHub的时候非常慢,特别是对于稍大项目Clone的时候就会更慢,当Clone项目的时候,可以将github地址变成github.com.cnpmjs.org就会获得加速 更改的harbor下载地址:https://github.com…
1.下载dashboard镜像 在运维主机(mfyxw50.mfyxw.com)上执行命令 [root@mfyxw50 ~]# docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kubernetes-dashboard-amd64:v1.10.1 2.对dashboard打标签并上传到私有仓库 在运维主机(mfyxw50.mfyxw.com)上执行命令 [root@mfyxw50 ~]# docker images |…
flannel之SNAT规则优化的目的是由于在K8S中的容器内,访问不同宿主机中的容器的资源的时候,日志文件会记录为宿主机的IP地址,而不是记录为容器本身自己的IP地址,建议在不同的宿主机上的容器互访的时候,在日志文件中查询到的IP地址均为容器的真实的IP地址.如下图所示,是为宿主机或进入宿主机的容器中进行curl访问另外node节点的容器,都会被记录成宿主机的IP地址,这样就会导致不同宿主机的容器互访,会经过一次SNAT转换,而实际上,不同宿主机容器之间的访问,应该会被记录为容器的实际IP地址…
kube-controller-manager运行控制器,它们是处理集群中常规任务的后台线程 Controller Manager就是集群内部的管理控制中心,由负责不同资源的多个Controller构成,共同负责集群内的Node.Pod等所有资源的管理,比如当通过Deployment创建的某个Pod发生异常退出时,RS Controller便会接受并处理该退出事件,并创建新的Pod来维持预期副本数. 几乎每种特定资源都有特定的Controller维护管理以保持预期状态,而Controller M…
四层反向代理集群规划 主机名 角色 IP地址 mfyxw10.mfyxw.com 4层负载均衡(主) 192.168.80.10 mfyxw20.mfyxw.com 4层负载均衡(从) 192.168.80.20 keepalived中的两种模式 (1)master->backup模式 一旦主库宕机,虚拟ip会自动漂移到从库,当主库修复后,keepalived启动后,还会把虚拟ip抢占过来,即使设置了非抢占模式(nopreempt)抢占ip的动作也会发生. (2)backup->backup模…
API Server简介 Kubernetes API Server提供了K8S各类资源对象(如:pod.RC.Service等)的增删改查及watch等HTTP Rest接口,是整个系统的数据总线和数据中心. Kubernetes API Server功能如下: 1.提供了集群管理的REST API接口(包括认证授权.数据校验以有集体状态变更) 2.提供其他模块之间的数据交互和通信的枢纽(其它模块通过api server查询或者修改数据,只有它才能 直接操作etcd) 3.是资源配额控制的入口…
注意:需要安装Docker的机器为mfyxw30.mfyxw40.mfyxw50 集群规划 主机名 角色 IP地址 mfyxw30.mfyxw.com Docker 192.168.80.30 mfyxw40.mfyxw.com Docker 192.168.80.40 mfyxw50.mfyxw.com Docker 192.168.80.50 1.安装到最新的内核** #CentOS7.x系统自带的3.10.x内存存在一些Bugs,导致运行的Docker.Kubernetes不稳定,建议升级…
1.修改主机名 hostnamectl set-hostname mfyxw10 hostnamectl set-hostname mfyxw20 hostnamectl set-hostname mfyxw30 hostnamectl set-hostname mfyxw40 hostnamectl set-hostname mfyxw50 2.关闭selinux和firewalld systemctl stop firewalld && systemctl disable firewa…
1.下载heapster镜像 在运维主机(mfyxw50.mfyxw.com)执行 [root@mfyxw50 ~]# docker pull quay.io/bitnami/heapster:1.5.4 2.对heapster打标签并上传至私有仓库 在运维主机(mfyxw50.mfyxw.com)执行 [root@mfyxw50 ~]# docker images | grep heapster [root@mfyxw50 ~]# docker tag quay.io/bitnami/heap…
K8S的DNS实现了服务在集群"内"被自动发现,如何使得服务在Kuberneters集群"外"被使用和访问呢,有二种方法 1)使用NodePort型的Service ​ 注意:无法使用kube-proxy的ipvs模型,只能使用iptables模型 2)使用Ingress资源 注意:Ingress只能调度并暴露7层应用,特指http和https协议,一般建议用在http协议上 Ingress是K8S API的标准资源类型之一,也是一种核心资源.它其实就是一组基于域名…
在运维主机上(mfyxw50.mfyxw.com)准备Coredns镜像文件,以docker镜像文件的方式部署到Kubernetes集群中去. 1.下载coredns镜像 [root@mfyxw50 ~]# docker pull coredns/coredns:1.6.9 [root@mfyxw50 ~]# docker tag faac9e62c0d6 harbor.od.com/public/coredns:v1.6.9 2.将打好标签的coredns上传到私有仓库 [root@mfyxw…
1.Kubernetes节点信息情况 主机名 简称 角色 IP地址 操作系统 mfyxw10.mfyxw.com mfyxw10 K8S代理节点1 192.168.80.10 CentOS7.7 mfyxw20.mfyxw.com mfyxw20 K8S代理节点2 192.168.80.20 CentOS7.7 mfyxw30.mfyxw.com mfyxw30 K8S运算节点1 192.168.80.30 CentOS7.7 mfyxw40.mfyxw.com mfyxw40 K8S运算节点1…
Kubernetes Scheduler是一个策略丰富.拓扑感知.工作负载特定的功能,调度器显著影响可用性.性能和容量.调度器需要考虑个人和集体的资源要求.服务质量要求.硬件/软件/政策约束.亲和力和反亲和力规范.数据局部性.负载间干扰.完成期限等.工作负载特定的要求必要时将通过 API 暴露. kube-scheduler是Kube-Master相关的3个服务之一(ApiServer.Controller Manager.Scheduler),是有状态的服务,会修改集群的状态信息. 如果多个m…
准备: 网上教如何编译与安装kubernetes的教程很多,需要提前准备的也很多,比如关闭selinux,防火墙啦....但有一点一定要注意,编译kubernetes源码时要求有2G内存,这个可是实打实的2G内存!所以要求你的机器至少是3G,4G最好了. 如果你手头不是那么宽裕比如我只买得起2G内存的计算云,那么只好利用交换分区了... 增加1GB大小的交换分区,则命令写法如下,其中的count等于想要的块的数量(bs*count=文件大小)dd if=/dev/zero of=/root/sw…
二进制安装K8s之部署kube-apiserver 一.生成 kube-apiserver 证书 1.自签证书颁发机构(CA) cat > ca-config.json <<EOF { "signing": { "default": { "expiry": "87600h" }, "profiles": { "kubernetes": { "expiry&qu…
二进制安装K8s 之 部署ETCD集群 一.下载安装cfssl,用于k8s证书签名 二进制包地址:https://pkg.cfssl.org/ 所需软件包: cfssl 1.6.0 cfssljson 1.6.0 cfssl-certinfo 1.6.0 wget https://github.com/cloudflare/cfssl/releases/download/v1.6.0/cfssl_1.6.0_linux_amd64 -O cfssl wget https://github.com…
文章转载自:https://mp.weixin.qq.com/s?__biz=MzI1MDgwNzQ1MQ==&mid=2247483842&idx=1&sn=1ef1cb06ab98e86f9de595e117924db9&chksm=e9fdd436de8a5d20bf0625b61c3f4369d826691340d97caa3258d828cfc4e21302f9b80250c0&cur_album_id=1341273083637989377&sc…
目录 1.目录 1.1.什么是 Kubernetes? 1.2.Kubernetes 有哪些优势? 2.环境准备 2.1.网络配置 2.2.更改 HOSTNAME 2.3.配置ssh免密码登录登录 2.4.关闭防火墙 2.5.关闭交换分区 2.6.关闭 SeLinux 2.7.安装 NTP 2.8.安装及配置 CFSSL 2.9.创建安装目录 2.10.升级内核 3.安装 Docker 18.06.1-ce 3.1.删除旧版本的 Docker 3.2.设置存储库 3.3.安装 Docker 3.…
在https学习笔记二,已经弄清了数字证书的概念,组成和在https连接过程中,客户端是如何验证服务器端的证书的.这一章,主要介绍下如何使用openssl库来创建key file,以及生成root CA及签发子证书.学习主要参考官方文档:https://www.feistyduck.com/library/openssl-cookbook/online/ch-openssl.html# 一.openssl 简介 openssl 是目前最流行的 SSL 密码库工具,其提供了一个通用.健壮.功能完备…
xca打开的界面 依次File, New DataBase,选择xdb文件保存路径,再输入密码 切换到Certificates页面,点击New Certificate 出现如下界面 因为要创建根证书,这里选择序号为1的自认证证书,签名算法选择SHA 256,证书模版选择默认CA,再点击Apply all(这个不能漏): 再切到Subject页面,填好各个字段,都可以随便填 再点击Generate a new key生产私钥 最后点击OK,CA证书做好了,有效期默认10年 将根证书导出成只包含公钥…
<<COMMENTX509 文件扩展名 首先我们要理解文件的扩展名代表什么.DER.PEM.CRT和CER这些扩展名经常令人困惑.很多人错误地认为这些扩展名可以互相代替.尽管的确有时候有些扩展名是可以互换的,但是最好你能确定证书是如何编码的,进而正确地标识它们.正确地标识证书有助于证书的管理. 编码 (也用于扩展名) # DER =扩展名DER用于二进制DER编码的证书.这些证书也可以用CER或者CRT作为扩展名.比较合适的说法是“我有一个DER编码的证书”,而不是“我有一个DER证书”.#…
一.openssl 简介 openssl 是目前最流行的 SSL 密码库工具,其提供了一个通用.健壮.功能完备的工具套件,用以支持SSL/TLS 协议的实现.官网:https://www.openssl.org/source/,其中有3个主要的用途:1.密码算法库(建立 RSA.DH.DSA key 参数,计算消息摘要,使用各种 Cipher加密/解密) 2.密钥和证书封装管理功能(建立 X.509 证书.证书签名请求(CSR)和CRLs(证书回收列表)):3.SSL通信API接口(SSL/TL…
利用二进制文件安装etcd所需要的证书服务 CFSSL是CloudFlare开源的一款PKI/TLS工具. CFSSL 包含一个命令行工具 和一个用于 签名,验证并且捆绑TLS证书的 HTTP API 服务. 使用Go语言编写. 集群相关证书类型 client certificate: 用于服务端认证客户端,例如etcdctl.etcd proxy.fleetctl.docker客户端 server certificate: 服务端使用,客户端以此验证服务端身份,例如docker服务端.kube…