Kubernetes(K8s)2020版 持久化nfs,pv,pvc,prometheus,grafana(8)
持久化存储nfs网络存储找一台服务器 装nfs# 安装yum install -y nfs-utils# 更改配置vi /etc/exports设置为: /data/nfs *(rw,no_root_squash)# 创建目录,供 node读取mkdir /data/nfs/# 开始nfssystemctl start nfs现在用:# 原来的已经不行,用 nfs-serversudo servi
·
持久化存储 nfs网络存储
找一台服务器 装nfs
# 安装
yum install -y nfs-utils
# 更改配置
vi /etc/exports
设置为: /data/nfs *(rw,no_root_squash)
# 创建目录,供 node读取
mkdir /data/nfs/
# 开始nfs
systemctl start nfs
现在用:
# 原来的已经不行,用 nfs-server
sudo service nfs-server start
systemctl enable nfs-server
# 查看端口
ps -ef | grep nfs
在 node节点上,安装nfs, 并创建Deployment
- node上 nfs 同样安装
mkdir pv
在pv中建立
nfs-nginx.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-dep1
spec:
replicas: 1
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx
volumeMounts:
- name: wwwroot
mountPath: /usr/share/nginx/html
ports:
- containerPort: 80
volumes:
- name: wwwroot
nfs:
server: 192.168.44.134
path: /data/nfs
在nfs服务器上建立 index.html
# 查看详细
kubectl describe pod XXXX
# 进入
kubectl exec -it XXXX bash
# nginx的目录是这个
ls /usr/share/nginx/html
即能看到:index.html
# 在 nfs服务器上 ,创建
cd /data/nfs
vim index.html 内容abc test
# 再次返回 进入的node:
ls /usr/share/share/nginx/html
即能看到:index.html
# 进行 暴露端口
kubectl expose deployment nginx-dep1 --port=80 --target-port=80 --type=NodePort
持久化 pv 和 pvc
pv 持久化存储
pvc 持久化存储的调用
# 进行删除
kubectl delete -f nfs-nginx.yaml
pvc持久化存储调用
- 内部实现 不需要自己关注
# 创建:Deployment,调用其他:persistentVolumeClaim
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-dep1
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx
volumeMounts:
- name: wwwroot
mountPath: /usr/share/nginx/html
ports:
- containerPort: 80
volumes:
- name: wwwroot
persistentVolumeClaim:
claimName: my-pvc
---
# 创建:PersistentVolumeClaim
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: my-pvc
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 5Gi
# 运行 pvc
kubectl apply -f pvc.yaml
# 创建:pv.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: my-pv
spec:
capacity:
storage: 5Gi
accessModes:
- ReadWriteMany
nfs:
path: /data/nfs
server: 192.168.44.134
pv 会找绑定 ReadWriteMany权限,5Gi,就会找到PVC PersistentVolumeClaim 这个类型的
通过 pvc绑定pv,(老师讲的)
kubectl apply -f pv.yaml
kubectl get pv,pvc
进入pod
ls /usr/share/nginx/html 依然能看到 index.html 是nfs服务器的文件
监控
prometheus:
- 监控 报警 时间序列 数据库
- 定时抓取 搜索 被监控状态的数据
prometheus + grafana一图解析
# 更改配置种的两个地方:
kubectl create -f node-exporter.yaml
头信息改成: apiVersion:apps/v1
增加:
spec:
selector:
matchLabels:
k8s-app: node-exporter
创建 普罗米修斯相关
# 1,rbac-setup
kubectl create -f rbac-setup.yaml
# 2,configmap.yaml
kubectl create -f configmap.yaml
# 3,部署 prometheus
kubectl create -f prometheus.deploy.yml // 需要先改 apps/v1
# 4,部署 prometheus.svc
kubectl create -f prometheus.svc.ymlkubectl get pods -n kube-system
grafana-deploy.yaml
增加:
apiVersion: apps/v1
spec:
selector:
matchLabels:
app: grafana
component: core
kubectl create -f grafana-deploy.yaml
# 部署 grafana-svc
kubectl -f grafana-svc.yaml
# 部署 grafana-ing ,用 ingress 方式部署的
kubectl -f grafana-ing.yaml
# 查看
kubectl get svc -n kube-system -o wide
# 访问 grafana
默认密码是admin,
1. 配置数据源,IP写 svc看到的 cluster-ip
2. 导入显示的模板,固定输入315 可以,选择数据源,上面设置的
或者看https://blog.csdn.net/y368769/article/details/108514720
去官网:https://grafana.com/grafana/dashboards
输入ID,和json才能导入,右边查找 普罗米修斯
更多推荐
已为社区贡献4条内容
所有评论(0)