查看Navicat保存的密码
Navicat密码一旦保存, 再次编辑就没法查看密码是什么了, 包括之前可以使用的星号密码查看器也看不到密码, 我们可以通过导出链接文件, 然后通过解密被加密的密码来获取密码原文.
导出加密密码打开Navicat – 文件 – 导出连接
接下来的弹窗里, 勾选导出密码, 然后导出成ncx文件
用文本编辑器打开 connections.ncx 文件, 复制 password 的值, 这个就是加密后的密码.
使用PHP解密电脑没有PHP环境, 所以选择使用Docker来运行PHP, 操作如下:
准备解密脚本vim decode_navicat_password.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 ...
NFS
方式123456789101112# pv的访问模式:accessModesRWO - readWriteOnceROX - readOnlyManyRWX - readWriteMany# pod申请pvc参考 test-pvc-pod.yml# statefulset 申请pv pvc 参考 test-nginx-statefulset.yaml可动态为kubernetes提供pv卷,是Kubernetes的简易NFS的外部provisioner,本身不提供NFS,需要现有的NFS服务器提供存储。持久卷目录的命名规则为: ${namespace}-${pvcName}-${pvName}。使用参考 目录内 test-nginx-statefulset.yaml test-pvc-pod.yml 文件
nfs-provisioner-deploy.yaml12345678910111213141516171819202122232425262728293031323334353637383940apiVersion: a ...
kube-state-metrics
kube-state-metrics.yaml123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195 ...
logstash
logstash.yaml1234567891011121314151617181920212223242526272829303132333435kind: DeploymentapiVersion: apps/v1metadata: name: logstash-ingress-logs namespace: logstashspec: replicas: 1 selector: matchLabels: app: logstash-ingress-logs template: metadata: labels: app: logstash-ingress-logs spec: volumes: - name: logstash-ingress-logs-conf configMap: name: logstash-ingress-logs-conf defaultMode: 420 containers: - ...
metrics-server
metrics-server.yaml1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961 ...
node-exporter
node-exporter.yaml1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162apiVersion: apps/v1kind: DaemonSetmetadata: name: node-exporter namespace: monitor labels: name: node-exporterspec: selector: matchLabels: name: node-exporter template: metadata: labels: name: node-exporter spec: hostPID: true hostIPC: true hostNetwork: true containers: - name: node-exporter image: r ...
prometheus
prometheus.yaml123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109apiVersion: rbac.authorization.k8s.io/v1kind: ClusterRolemetadata: name: prometheusrules:- apiGroups: [""] resources: - nodes - nodes/proxy - services - endpoints - pods verbs: ["get", "list", "watch"]- apiGroups: - e ...
Django RestFramework 使用router生成路由
django使用的是模块化结构,每个app都可以独立拆分,那么注册路由的时候也可以灵活一点, 使用drf框架提供的router来自动生成路由
应用级 urls.py
12345678910111213from django.urls import path, includefrom rest_framework import routersfrom app01 import viewsrouter = routers.DefaultRouter()router.register(r'groups', views.GroupViewSet)router.register(r'students', views.StudentViewSet)urlpatterns = [ path('/', include(router.urls)),]
这里path路径是/, 引用了router, router注册了两个路由, 分别是 groups 和 students, 生成的api路径就是 /groups/ 和 /stude ...
使用kubectl进行多集群管理
平常使用跳板机来管理, 经常多个环境多套集群, 那么如何用一个kubectl如何管理这些集群.
使用不同的kubeconfig管理使用不同的Linux用户每个Linux用户的 ~/.kube/config 配置不同即可, 比如创建一个uat用户,一个prod用户, 分别配置不同的config文件
使用环境变量config文件放到当前目录下
1KUBECONFIG=config-uat kubectl get pod
环境变量也可以写成全局的在.bashrc里面
1export KUBECONFIG=config-uat
使用参数同使用环境变量
1kubectl get pod --kubeconfig=config-uat
使用一个kubeconfig准备确保每个kubeconfig里面部分参数唯一性,可以手动修改一下
合并配置文件假设一个配置文件名为: uat, 另一个为: prod
1KUBECONFIG=uat:prod kubectl config view --flatten > merged-kubeconfig
验证合并结果完成合并后,可以使用以下命令验证 ...
Kubernetes使用存储挂载单个文件
一般来说, 挂载存储都是把一个PV挂载到一个路径, 挂载后此路径下原来的文件就会不见, 只能看到挂载后的文件, 和在Linux下挂载磁盘是一样的. 那么现在有个需求:
需求此服务是java程序, 数据库使用的是内嵌的h2 database, 下图中的两个文件就是数据库的文件. 这两个文件是存在于根目录下的, 假设此程序数据库文件是代码写死的(真实情况是: 数据库路径是可以更改的), 现在要部署到kubernetes中, 并对数据库做持久化.
使用subpath根据之前挂载configmap到单个文件的经验, 我们应该使用subpath来挂载, 先创建好pvc, yml如下
1234567891011apiVersion: v1kind: PersistentVolumeClaimmetadata: name: metabase-pvcspec: storageClassName: managed-nfs-storage accessModes: - ReadWriteOnce resources: requests: storage: 10Gi
st ...