11 2019 档案
摘要:一 前期准备 1.1 前置条件 集群部署:Kubernetes集群部署参考003——019。 glusterfs-Kubernetes部署:参考《附010.Kubernetes永久存储之GlusterFS超融合部署》。 1.2 部署规划 本实验使用StatefulSet部署MongoDB集群,同时每
阅读全文
摘要:一 Pod的扩容和缩容 Kubernetes对Pod的扩缩容操作提供了手动和自动两种模式,手动模式通过执行kubectl scale命令或通过RESTful API对一个Deployment/RC进行Pod副本数量的设置。自动模式则需要用户根据某个性能指标或者自定义业务指标,并指定Pod副本数量的范
阅读全文
摘要:一 前期准备 1.1 基础知识 在Kubernetes中,使用GlusterFS文件系统,操作步骤通常是: 创建brick-->创建volume-->创建PV-->创建PVC-->Pod挂载PVC 如果要创建多个PV,则需要手动重复执行,可通过Heketi管理glusterfs。 Heketi是用来
阅读全文
摘要:一 前期准备 1.1 基础知识 Heketi提供了一个RESTful管理界面,可以用来管理GlusterFS卷的生命周期。Heketi会动态在集群内选择bricks构建所需的volumes,从而确保数据的副本会分散到集群不同的故障域内。同时Heketi还支持任意数量的ClusterFS集群。 提示:
阅读全文
摘要:一 deploymentPod升级和回滚 1.1 deployment升级 若Pod是通过Deployment创建的,可以在运行时修改Deployment的Pod定义(spec.template)或镜像名称,并应用到Deployment对象上,系统即可完成Deployment的自动更新操作。 如果在
阅读全文
摘要:一 Pod生命周期管理 1.1 Pod生命周期 Pod在整个生命周期过程中被系统定义了如下各种状态。 状态值 描述 Pending API Server已经创建该Pod,且Pod内还有一个或多个容器的镜像没有创建,包括正在下载镜像的过程。 Running Pod内所有容器均已创建,且至少有一个容器处
阅读全文
摘要:一 Pod定义详解 1.1 完整Pod定义文件 1 apiVersion: v1 #必选,版本号,例如v1,版本号必须可以用 kubectl api-versions 查询到 2 kind: Pod #必选,Pod 3 metadata: #必选,元数据 4 name: string #必选,Pod
阅读全文
摘要:一 Metrics部署1.1 Metrics介绍Kubernetes的早期版本依靠Heapster来实现完整的性能数据采集和监控功能,Kubernetes从1.8版本开始,性能数据开始以Metrics API的方式提供标准化接口,并且从1.10版本开始将Heapster替换为Metrics Server。在Kubernetes新的监控体系中,Metrics Server用于提供核心指标(Core ...
阅读全文
摘要:一 修改配置文件1.1 下载解压 1 [root@master01 ~]# cd /opt/k8s/work/kubernetes/ 2 [root@master01 kubernetes]# tar -xzvf kubernetes-src.tar.gz提示:master01 节点已解压完毕,可直
阅读全文
摘要:一 验证集群功能1.1 检查节点状态 1 [root@master01 ~]# cd /opt/k8s/work/ 2 [root@master01 work]# kubectl get cs 3 [root@master01 work]# kubectl cluster-info 4 [root@master01 work]# kubectl get nodes1.2 创建测试文件 ...
阅读全文
摘要:一 部署 kube-proxykube-proxy 运行在所有节点上,它监听 apiserver 中 service 和 endpoint 的变化情况,创建路由规则以提供服务 IP 和负载均衡功能。1.1 安装kube-proxy提示:master01 节点已下载相应二进制,可直接分发至worker节点。1.2 分发kube-proxy 1 [root@master01 ~]# cd /opt/...
阅读全文
摘要:一 部署 kubeletkubelet 运行在每个 worker 节点上,接收 kube-apiserver 发送的请求,管理 Pod 容器,执行交互式命令,如 exec、run、logs 等。kubelet 启动时自动向 kube-apiserver 注册节点信息,内置的 cadvisor 统计和
阅读全文
摘要:一 部署Docker1.1 部署Docker组件Docker 运行和管理容器,kubelet 通过 Container Runtime Interface (CRI) 与它进行交互。1.2 下载Docker 1 [root@master01 ~]# cd /opt/k8s/work 2 [root@
阅读全文
摘要:一 部署flannel1.1 安装flannelkubernetes 要求集群内各节点(包括 master 节点)能通过 Pod 网段互联互通。flannel 使用 vxlan 技术为各节点创建一个可以互通的 Pod 网络,使用的端口为 UDP 8472。flanneld 第一次启动时,从 etcd 获取配置的 Pod 网段信息,为本节点分配一个未使用的地址段,然后创建 flannedl.1 网络...
阅读全文
摘要:一 部署kube-scheduler1.1 高可用kube-scheduler介绍本实验部署一个三实例 kube-scheduler 的集群,启动后将通过竞争选举机制产生一个 leader 节点,其它节点为阻塞状态。当 leader 节点不可用时,阻塞的节点将再次进行选举产生新的 leader 节点,从而保证服务的可用性。为保证通信安全,本文档先生成 x509 证书和私钥,kube-control...
阅读全文
摘要:一 部署kube-controller-manager1.1 高可用kube-controller-manager介绍本实验部署一个三实例 kube-controller-manager 的集群,启动后将通过竞争选举机制产生一个 leader 节点,其它节点为阻塞状态。当 leader 节点不可用时,阻塞的节点将再次进行选举产生新的 leader 节点,从而保证服务的可用性。为保证通信安全,本文档...
阅读全文
摘要:一 获取Kubernetes二进制文件1.1 master节点服务kubernetes master 节点运行如下组件:kube-apiserverkube-schedulerkube-controller-managerkube-nginxkube-apiserver、kube-scheduler 和 kube-controller-manager 均以多实例模式运行:kube-schedule...
阅读全文
摘要:一 kube-apiserver高可用1.1 Keepalived实现VIPKeepalived可以提供kube-apiserver VIP,配合Nginx实现kube-apiserver的高可用。1.2 Nginx实现反向代理基于 nginx 代理的 kube-apiserver 高可用方案。控制节点的 kube-controller-manager、kube-scheduler 是多实例部署,...
阅读全文
摘要:一 部署ETCD集群1.1 安装ETCDetcd 是基于 Raft 的分布式 key-value 存储系统,由 CoreOS 开发,常用于服务发现、共享配置以及并发控制(如 leader 选举、分布式锁等)。kubernetes 使用 etcd 存储所有运行数据。 1 [root@master01 ~]# cd /opt/k8s/work 2 [root@master01 work]# wge...
阅读全文
摘要:一 部署 kubectl1.1 获取kubectl 1 [root@master01 ~]# cd /opt/k8s/work 2 [root@master01 work]# wget https://storage.googleapis.com/kubernetes-release/release/v1.18.3/kubernetes-client-linux-amd64.tar.gz 3...
阅读全文
摘要:一 创建CA证书和密钥1.1 安装cfssl工具集 1 [root@master01 ~]# mkdir -p /opt/k8s/cert 2 3 [root@master01 ~]# curl -L https://pkg.cfssl.org/R1.2/cfssl_linux-amd64 -o /opt/k8s/bin/cfssl #下载cfssl软件 4 [root@...
阅读全文
摘要:一 安全策略1.1 策略需求相应的充足资源的Linux服务器;设置相应的主机名,参考命令:hostnamectl set-hostname master01 ;Mac及UUID唯一;若未关闭防火墙则建议放通相应端口,如下:Master节点规则方向端口范围作用使用者TCPInbound6443*Kubernetes API serverAllTCPInbound2379-2380etcd serve...
阅读全文
摘要:一 环境准备1.1 基础环境Kubernetes模式:单机版系统环境:CentOS 7/172.24.9.157部署方式:yum快速部署其他设置:开启NTP、关闭防火墙及SELinux二 部署过程2.1 安装软件 1 [root@k8s ~]# yum -y install etcd kuberne
阅读全文