随笔分类 - kubernetes
摘要:一、集群环境准备 1.1 主机规划 主机IP地址 主机名 主机配置 主机角色 软件列表 192.168.198.144 k8s-master1 2C4G master kube-apiserver、kube-controller-manager、kube-scheduler、etcd、kubectl
阅读全文
摘要:Helm Kubernetes 包管理工具 Helm 可以帮助我们管理 Kubernetes 应用程序 - Helm Charts 可以定义、安装和升级复杂的 Kubernetes 应用程序,Charts 包很容易创建、版本管理、分享和分布 安装 到GitHub仓库下载:https://github
阅读全文
摘要:在集群中需要对节点进行升级内核,升级docker等组件时候,为了避免业务受影响,需要把上面运行的pod迁移走。 cordon :设置节点禁止调度 drain :驱逐节点上运行的pod到其他节点 uncordon :恢复节点调度 #先把节点设置成禁止调度,新创建的pod就不会调度此节点上 [root@
阅读全文
摘要:一、概述 Prometheus是一个开源监控系统,生态包括了很多组件,它们中的一些是可选的: 主服务Prometheus Server负责抓取和存储时间序列数据 客户库负责检测应用程序代码 支持短生命周期的PUSH网关 基于Rails/SQL仪表盘构建器的GUI 多种导出工具,可以支持Prometh
阅读全文
摘要:一、注意事项 升级前最好备份所有组件及数据,例如etcd 不要跨两个大版本进行升级,可能会存在版本bug,如: 1.19.4-->1.20.4 可以 1.19.4-->1.21.4 不可以 跨多个版本的可以逐个版本进行升级。 二、查看当前版本 [root@k8s-master1 ~]# kubect
阅读全文
摘要:部署简介: 1. 控制器:采用StatefulSet进行redis的部署。它为了解决有状态服务的问题,它所管理的Pod拥有固定的Pod名称,启停顺序。 2. 服务发现:两个svc,一个是暴露对外(NodePort service),一个是StatefulSet部署使用(headless servic
阅读全文
摘要:ConfigMap ConfigMap是一种比较特殊的存储卷,它的主要作用是用来存储配置信息的。 Secret 在kubernetes中,还存在一种和ConfigMap非常类似的对象,称为Secret对象。它主要用于存储敏感信息,例如密码、秘钥、证书等等。 创建configmap 1. 先创建use
阅读全文
摘要:污点就是拒绝,容忍就是忽略,Node通过污点拒绝pod调度上去,Pod通过容忍忽略拒绝 污点:给节点添加 污点的格式为: key=value:effect , key和value是污点的标签,effect描述污点的作用,支持如下三个 选项: PreferNoSchedule:kubernetes将尽
阅读全文
摘要:弹性扩缩容是k8s中重要的功能之一,当服务负载大的时候,k8s会自动给给你扩容,当负载减低的时候,有自动给你缩容。 hpa通过metrics-server监控组件获取到服务负载监控数据,使用hpa需要先安装好metrics-server。 测试hpa弹性扩容容: 先部署deploy,svc;在部署h
阅读全文
摘要:概述 metrics-server 是一个集群范围内的资源数据集和工具,同样的,metrics-server 也只是显示数据,并不提供数据存储服务,主要关注的是资源度量 API 的实现,比如 CPU、文件描述符、内存、请求延时等指标,metric-server 收集数据给 k8s 集群内使用,如 k
阅读全文
摘要:给节点添加角色: k8s集群,节点如果有多个角色,需要标记出来,可以给对应的节点打上标签,方便后续了解节点的功能 命令:kubectl label nodes 节点名字 node-role.kubernetes.io/你想要的roles(=/-) 最后括号里的加减号,减号就是删除roles,等号就是
阅读全文
摘要:k8s中为什么使用存储: k8s中的副本控制器保证了pod的始终存储,却保证不了pod中的数据。只有启动一个新pod的,之前pod中的数据会随着容器的删掉而丢失! pv和pvc的概念: PersistentVolume(一些简称PV):由管理员添加的的一个存储的描述,是一个全局资源,包含存储的类型,
阅读全文
摘要:Heapster是容器集群监控和性能分析工具,天然的支持Kubernetes和CoreOS heapster监控目前官网已经不更新,部署学习使用 heapster: 收集监控数据 influxdb:数据库,存储数据 grafana:web页面展示 1、heapster安装包下载 地址:https:/
阅读全文
摘要:livenessProbe:健康状态检查,周期性检查服务是否存活,检查结果失败,将重启容器 readinessProbe:可用性检查,周期性检查服务是否可用,不可用将从service的endpoints中移除 同一个容器中,可以同时使用livenessProbe,readinessProbe。 都是
阅读全文
摘要:使用liveness探针httpget方式检测pod健康,httpGet方式使用的最多 [root@k8s-master1 tanzhen]# cat nginx_pod_httpGet.yaml apiVersion: v1 kind: Pod metadata: name: httpget la
阅读全文
摘要:使用探针的方式对pod资源健康检查 探针的种类 livenessProbe:健康状态检查,周期性检查服务是否存活,检查结果失败,将重启容器 readinessProbe:可用性检查,周期性检查服务是否可用,不可用将从service的endpoints中移除 探针的检测方法 * exec:执行一段命令
阅读全文
摘要:通常情况下,Deployment 被用来部署无状态服务,那么对于有状态服务的部署,使用 StatefulSet 进行有状态服务的部署。 创建deployment方式有两种,一种是命令直接创建,一种是使用yaml文件 1. 直接使用命令方式: --record 参数用来记录版本,也可以忽略,建议带上
阅读全文
摘要:1、 查询deploy副本数,ready数表示副本数 kubectl get deploy 2、通过命令直接扩容或者缩容,--replicas=1表示把my-dep缩容到副本数1,--replicas=4表示把my-dep扩容到副本数4, kubectl scale deployment my-de
阅读全文
摘要:对于Kubernetes集群来说,一个service可能有多个pod,滚动升级(Rolling update)就是指每次更新部分Pod,而不是在同一时刻将该Service下面的所有Pod shutdown,然后去更新(例如replace --force方案),逐个更新可以避免将业务中断 1. 先查询
阅读全文
摘要:k8s中pod通过label标签名称来识别关联,它们的label name一定是一样的。ingress,service,depoyment通过标签选择器selector 中app:name来关联 1、查询发布的deploymet控制器 [root@k8s-master1 ~]# kubectl ge
阅读全文