哪里有建网站的公司,门户网站建设与管理办法,一个公司网站多少钱,河北专业网络营销收费公司每日禅语 古代#xff0c;一位官员被革职遣返#xff0c;心中苦闷无处排解#xff0c;便来到一位禅师的法堂。禅师静静地听完了此人的倾诉#xff0c;将他带入自己的禅房之中。禅师指着桌上的一瓶水#xff0c;微笑着对官员说#xff1a;“你看这瓶水#xff0c;它已经…每日禅语 古代一位官员被革职遣返心中苦闷无处排解便来到一位禅师的法堂。禅师静静地听完了此人的倾诉将他带入自己的禅房之中。禅师指着桌上的一瓶水微笑着对官员说“你看这瓶水它已经放置在这里许久了每天都有尘埃、灰烬落在里面但它依然澄清透明。你知道这是何故吗”官员思索了良久似有所悟“所有的灰尘都沉淀到瓶底了。”禅师点了点头说道“世间烦恼之事数之不尽有些事越想忘掉却越挥之不去那就索性记住它好了。就像瓶中水如果你不停地振荡它就会使整瓶水都不得安宁混浊一片如果你愿意慢慢地、静静地让它们沉淀下来用宽广的胸怀容纳它们那么心灵不但并未因此受到污染反而更加纯净。”官员恍然大悟。观水学做人时常自省便能和光同尘愈深邃愈安静便能至柔而有骨执着而穿石以“天下之至柔驰骋天下之至坚”。时常自省便能灵活处世不拘泥于形式因时而变因势而变因器而变因机而动生机无限时常自省便能清澈透明纤尘不染时常自省便能润泽万物有容乃大通达而广济天下奉献而不图回报 文章背景 一般常用的日志挂载方式有elk,grafana等工具连接查看但是这些方式都是需要充足的资源的而且部署方式比较麻烦。但是搭建k8s集群以后日志分布在不同的机器上面需要用一种简单便捷的日志收集方式统一收集到一台机器上面做日志查看。对于自己学习或者是公司的内部系统需要做应用的日志收集使用nfs的日志收集方式无不是一种简单且便捷的方式本文以nfs作为远程存储统一存放pod日志。 1.安装nfs服务所有节点
yum install -y nfs-utils rpcbind
2.创建共享目录设置日志收集服务器地址 本文所有日志都收集在172.17.12.24服务器上面在24服务上面创建共享目录 mkdir -p /home/apps/nfs
chmod -R 755 /home/apps/nfs
3.编辑 /etc/exports添加以下内容
/home/apps/nfs/ *(rw,no_root_squash,sync)
4.使配置生效
exportfs -r
5.启动服务所有节点
systemctl start rpcbind
systemctl start nfs
systemctl enable rpcbind
systemctl enable nfs
6.创建pv(k8s集群控制节点操作)
apiVersion: v1
kind: PersistentVolume
metadata:name: pv-nfs-prod-24namespace: prodlabels:env: uat
spec:capacity:storage: 60GivolumeMode: FilesystemaccessModes:- ReadWriteManypersistentVolumeReclaimPolicy: RetainstorageClassName: nfs:path: /home/apps/nfs/server: 172.17.12.24
7.创建pvck8s集群控制节点操作
apiVersion: v1
kind: PersistentVolumeClaim
metadata:name: pvc-nfs-prod-24namespace: prod
spec:accessModes: # 访问模式- ReadWriteManyvolumeMode: Filesystem # 存储卷模式resources: # 资源请求requests:storage: 30GistorageClassName: selector:matchLabels:env: uat
8.配置pod使用pvck8s集群控制节点操作
---
apiVersion: apps/v1
kind: Deployment
metadata:name: deploy-myapp
spec:replicas: 3selector:matchLabels:app: myapptemplate:metadata:labels:app: myappspec:affinity:nodeAffinity: # pod调度preferredDuringSchedulingIgnoredDuringExecution:- weight: 1preference:matchExpressions:- key: typeoperator: Invalues:- app- key: envoperator: Invalues:- uatcontainers:- name: myappimage: harbor.neiwang.com/demo/myapp:1.0.2imagePullPolicy: IfNotPresentports:- name: main-httpcontainerPort: 8201- name: main-dubbocontainerPort: 28201env:- name: POD_NAME # 使用Downward API获取POD名称valueFrom:fieldRef:apiVersion: v1fieldPath: metadata.nameenvFrom: # 引用configMap中的环境变量- configMapRef:name: cm-common- configMapRef:name: cm-springvolumeMounts:- mountPath: /app/logname: logdirsubPathExpr: myapp/$(POD_NAME) # 使用子目录, 便于定位指定pod的日志volumes:- name: logdirpersistentVolumeClaim:claimName: pvc-nfs-prod-24imagePullSecrets: # 从私有harbor仓库拉取镜像需要配置账户信息的secret- name: registry-harbor---
apiVersion: v1
kind: Service
metadata:name: svc-myapp
spec:selector:app: myappports:- name: main-httpprotocol: TCPport: 8201targetPort: 8201- name: main-dubboprotocol: TCPport: 28201targetPort: 282019.启动并且查看日志 使用yaml文件创建deployment和service kubectl create -f myapp.yaml 查看pod是否启动 kubectl get pods 到nfs服务端查看是否有新生成的pod文件