持久化存储 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才能导入,右边查找 普罗米修斯

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐