【容器监控系列教程】Prometheus普罗米修斯监控Kubernetes
【容器监控系列教程】Prometheus普罗米修斯监控Kubernetes
本教程涉及到的所有文件下载地址:https://pan.baidu.com/s/1IOk6PMEleZY5O_hNg9agxw?pwd=hng7关于文件中提供的tar包,是教程用到的image镜像文件,我已经打包好了,可以使用docker load把镜像快速上传到node节点上。更多关于Docker镜像操作教程:https://www.wsjj.top/archives/134
一、Prometheus普罗米修斯的介绍
prometheus是由谷歌研发的一款开源的监控软件,它通过安装在远程机器上的exporter,通过HTTP协议从远程的机器收集数据并存储在本地的时序数据库上
同时Prometheus后端用golang语言开发,前端是Grafana
Prometheus为了支持各种中间件以及第三方的监控提供了exporter,大家可以把它理解成监控适配器,将不同指标类型和格式的数据统一转化为Prometheus能够识别的指标类型。
例如Node exporter主要通过读取Linux的/proc以及/sys目 ...
【容器应用系列教程】Kubernetes调度系统
【容器应用系列教程】Kubernetes调度系统一、基于nodeName调度
指定在哪个node节点上,创建Pod
1.查看所有节点[root@k8s-master ~]# kubectl get node
NAME STATUS ROLES AGE VERSION
k8s-master.linux.com Ready control-plane,master 8d v1.20.7
k8s-node01.linux.com Ready <none> 8d v1.20.7
k8s-node02.linux.com Ready <none> 8d v1.20.7
2.基于nodeName调度[root@k8s-master test]# vim test1.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
...
【容器应用系列教程】Kubernetes配置映射ConfigMap
【容器应用系列教程】Kubernetes配置映射ConfigMap一、关于ConfigMap
以键值对存储业务的配置数据(密码、配置文件内容)
二、创建并使用ConfigMap1.在ConfigMap通过键值对的方式定义[root@k8s-master wordpress]# vim config-db.yml
apiVersion: v1
kind: ConfigMap
metadata:
name: mysql-config
namespace: wordpress
data:
db_password: redhat
db_name: jiaowu
[root@k8s-master wordpress]# kubectl create -f config-db.yml
configmap/mysql-config created
查看ConfigMap[root@k8s-master wordpress]# kubectl get cm -n wordpress
NAME DATA AGE
kube-r ...
【容器应用系列教程】Kubernetes有状态负载StatefulSet
【容器应用系列教程】Kubernetes有状态负载StatefulSet一、StatefulSet介绍
本质上就是POD
特性
重建POD时,会自动挂载之前的数据卷
依赖于网络存储的数据卷
适用场景:适用于数据库
二、创建StatefulSet1.创建PV和PVC
创建过程省略关于PV和PVC的创建教程:https://www.wsjj.top/archives/144
[root@k8s-master opt]# kubectl get pv -n default
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
nfs-pv1 1900M RWX Recycle Available 15h
nfs-pv2 4G RWX ...
【容器应用系列教程】Kubernetes数据卷Volume管理
【容器应用系列教程】Kubernetes数据卷Volume管理一、关于Volume
用于实现数据的持久化存储
Kubernetes支持多种类型的卷,例如EmptyDir、HostPath、nfs、glusterfs、ceph等
关于NFS搭建教程:https://www.wsjj.top/archives/62关于glusterFS搭建教程:https://www.wsjj.top/archives/103关于ceph搭建教程:https://www.wsjj.top/archives/105
二、EmptyDir临时卷
创建Pod时,Pod运行的node节点会创建临时卷,并将卷挂载到Pod指定的目录中
临时卷存放目录
/var/lib/kubelet/pods/<pod id>/volumes/kubernetes.io~empty-dir/自定义的卷名称
Pod宕机销毁后,该临时卷中的数据会随之被删除
1.创建基于EmptyDir临时卷的Pod[root@k8s-master wordpress]# vim vo-centos.yml
apiVersio ...
【容器应用系列教程】Kubernetes服务管理Service
【容器应用系列教程】Kubernetes服务管理Service一、关于Service
业务的访问入口
负载均衡功能
服务名称
命名格式:服务名称.命名空间.svc.cluster.local
例子:wordpress.default.svc.cluster.local
依赖于coreDNS组件
服务发现
创建服务时,会自动在coreDNS中注册名称、IP的解析关系
创建pod时,pod会自动使用DNS解析对应的服务名称
Service服务、POD依赖于标签选择器建立对应关系
查看刚创建Kubernetes自带的2个默认的Service
svc为service的简写
[root@k8s-master opt]# kubectl get svc -n default
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 172.16.0.1 <none> 443/TCP 4d3h
[root@k8s- ...
【容器应用系列教程】Kubernetes的Job管理
【容器应用系列教程】Kubernetes的Job管理一、Job的分类
job
类似于一次性任务,创建Pod临时运行一次任务,任务完成后Pod为complete状态
应用场景:适用于运行测试的任务
cronJob
类似于周期性计划任务,创建Pod以周期性运行某个任务,例如数据库备份等
通过和系统一样的crontab时间进行任务调度
二、Job1.创建Job
注意:Job资源创建时,restartPolicy只支持Never、OnFailure,不支持Always避免进入死循环
[root@k8s-master opt]# vim job.yml
apiVersion: batch/v1
kind: Job
metadata:
name: test-job
namespace: wordpress
spec:
template:
metadata:
name: test-job
spec:
restartPolicy: Never
containers:
...
【容器应用系列教程】kubernetes无状态负载deployment
【容器应用系列教程】kubernetes无状态负载集deployment一、关于deployment无状态负载集介绍
实际使用时,不建议直接创建Pod
deployment创建流程
deployement —-> RS(副本集) ——>Pod
deployment优势
自动维护Pod的副本
支持滚动更新
适用场景:频繁更新的业务
标签选择器(重要)
每种资源都会有对应的标签,标签的实际体现是键值对的数据
利用标签在RS副本集、POD之间映射关系
二、创建deployment1.创建[root@k8s-master wordpress]# vim nginx.yml
apiVersion: apps/v1
kind: Deployment #资源类型为Deployment
metadata:
name: nginx
namespace: wordpress
spec:
replicas: 4 #创建4个副本集
selector:
matchLabels:
app: nginx ...
【容器应用系列教程】Kubernetes的Pod管理
【容器应用系列教程】Kubernetes的Pod管理一、关于Pod
k8s集群所能管理的最小单元
一个pod只放一个容器
支持一个pod放多个容器,不建议实际使用
二、Pod管理操作1.创建Pod简单yaml文件示例[root@k8s-master wordpress]# vim centos.yml
apiVersion: v1 #api版本
kind: Pod #资源类型Pod
metadata: #元数据
name: centos #名字
namespace: wordpress #指定在哪个命名空间里
spec:
containers: #容器信息
- name: centos #容器名字
image: centos:7 #使用的镜像
tty: true #模拟一个终端
command: #启动容器时,执行的命令
- bash
apiVersion:指定api server版本,目前是v1
kind:说明要创建的资源类型
metadata:指定Pod的元数据信息
name:指定pod名称
n ...
【容器应用系列教程】Kubernetes的命名空间Namespace
【容器应用系列教程】Kubernetes的命名空间Namespace一、关于namespace命名空间
作用
为不同资源进行分组
二、命名空间namespace管理操作1.查看所有命名空间namespace
k8s在创建pod的时候,如果不指定命名空间,那么默认使用default搭建k8s集群自动创建的容器保存在kube-system命名空间中
[root@k8s-master ~]# kubectl get namespace
[root@k8s-master ~]# kubectl get ns #上面命令的简写
NAME STATUS AGE
default Active 2d20h
kube-node-lease Active 2d20h
kube-public Active 2d20h
kube-system Active 2d20h
2.创建命名空间namesapce方法1[root@k8s-master ~]# kubectl create ns test
namespa ...
【容器应用系列教程】Kubernetes集群部署(Centos7)
【容器应用系列教程】Kubernetes集群部署(Centos7)
基于Kubernetes1.20.7部署高可用集群搭建教程:https://www.wsjj.top/archives/kubernetes基于Kubernetes1.25.11集群部署教程Docker作为容器引擎(Centos7):https://www.wsjj.top/archives/163
一、环境规划1.主机规划
主机名
IP地址
配置
节点
k8s-master.linux.com
192.168.140.10
最低2c2g
Master节点
k8s-node01.linux.com
192.168.140.11
最低2c2g
Node节点
k8s-node02.linux.com
192.168.140.12
最低2c2g
Node节点
2.软件规划
kubernetes-1.20.7版本
docker-19.03版本
3.网段规划
pod网段:192.168.0.0/16
service网段:172.16.0.0/16
二、前期准备(重要)1.三台服务器关闭防火墙和 ...
【容器应用系列教程】Kubernetes介绍
【容器应用系列教程】Kubernetes介绍一、Kubernetes介绍1.Kubernetes是什么
是容器编排工具
由google公司开源的应用,基于go语言编写
简称k8s
2.Kubernetes的作用
服务发现和负载均衡
存储编排
自动部署和回滚
资源调度分配
自我修复
总而言之,kubernetes的目的就是让容器部署应用变得更简单、高效
二、Kubernetes组件介绍
1.Master节点
Master负责管理整个集群。 Master协调集群中的所有活动,例如调度应用、维护应用的所需状态、应用扩容以及推出新的更新
API Server组件
与etcd数据库进行交互,读写集群状态信息
接收客户端操作请求, 验证身份
接收kubelet发送过来的注册请求
Scheduler组件
调度客户端操作请求,选择合适的Node节点运行资源
Controller Manager组件
管理集群控制器,例如replication controller负责维护容器的副本数量
2.Node节点
运行pod的主机,可以是物理服务器,也可以是虚拟机处理生产级流量的Kubernet ...