- 博客(211)
- 资源 (9)
- 收藏
- 关注
原创 elasticsearch 将时间类型为时间戳保存格式的时间字段格式化返回
【代码】elasticsearch 将时间类型为时间戳保存格式的时间字段格式化返回。
2023-08-01 14:03:40 1614
原创 python itertools中的groupby方法按照key分组,同样的key分出了两个组问题。
除了数据的有序性外,还需要注意 groupby() 方法的工作原理。它是根据相邻的元素进行比较,如果相邻的元素的 key 相同,则将它们视为一组,否则将它们视为不同的组。在使用 itertools.groupby() 方法进行分组时,需要注意数据列表或迭代器的元素必须是有序的。否则,可能会出现无法正确分组或分组结果与预期不同的问题。因此,如果有两个相同 key 的元素不是相邻的,则它们被视为不同的组。
2023-04-23 12:01:18 792 1
原创 python链接Oracle报错 DPI-1047解决方法
确认 Python 使用的 cx_Oracle 模块使用的是正确版本的 Oracle 客户端库。这个错误通常是由于系统无法找到正确的 Oracle 客户端库文件导致的。如果使用错误的版本,可能会导致 cx_Oracle 报错找不到 Oracle 客户端库。检查系统中是否已经安装了 Oracle 客户端程序,并且版本是兼容的。是 Oracle 客户端库的路径,可能因版本不同而有所不同。
2023-04-07 10:14:33 2010 2
原创 pip3 升级软件包时遇到超时错误解决方法
使用镜像加速器:第三方工具和平台,如腾讯/阿里云,提供了一些镜像加速器,使用这些镜像加速器可以加速软件包下载和安装。如果你在使用 pip3 升级软件包时遇到超时错误,可能是因为下载速度缓慢或网络不稳定。请注意,将超时时间设置得太长可能会导致软件包下载时间过长,建议根据网络环境和软件包大小调整超时时间。升级单个软件包:如果升级所有软件包速度较慢,可以考虑先升级单个软件包,然后逐个升级其他软件包。更改 pip3 源:你可以切换到其他 pip3 源,例如清华、阿里等等,以提高下载速度。参数来调整请求超时时间。
2023-04-07 10:11:23 1035
原创 kubernetes-Dashboard
安装部署k8s仪表盘通过浏览器访问Dashboard的UI,在登录页面上输入上面的token出现下面的页面代表成功使用DashBoardDeployment为例演示DashBoard的使用选择指定的命名空间dev,然后点击Deployments,查看dev空间下的所有deployment在Deployment上点击规模,然后指定目标副本数量,点击确定在Deployment上点击编辑,然后修改yaml文件,点击确定点击Pods, 查看pods列表选中某个Pod,可以对其执行日志...
2022-07-11 15:59:16 279
原创 kubernete-安全认证
Kubernetes作为一个分布式集群的管理工具,保证集群的安全性是其一个重要的任务。所谓的安全性其实就是保证对Kubernetes的各种客户端进行认证和鉴权操作。在Kubernetes集群中,客户端通常有两类:ApiServer是访问及管理资源对象的唯一入口。任何一个请求访问ApiServer,都要经过下面三个流程:Kubernetes集群安全的最关键点在于如何识别并认证客户端身份,它提供了3种客户端身份认证方式:HTTP Base认证:通过用户名+密码的方式认证HTTP Token认证:通过一个Toke
2022-07-11 15:53:45 280
原创 kubernetes-配置存储
ConfigMap是一种比较特殊的存储卷,它的主要作用是用来存储配置信息的。创建configmap.yaml,内容如下:接下来,使用此配置文件创建configmap接下来创建一个pod-configmap.yaml,将上面创建的configmap挂载进去Secret在kubernetes中,还存在一种和ConfigMap非常类似的对象,称为Secret对象。它主要用于存储敏感信息,例如密码、秘钥、证书等等。接下来编写secret.yaml,并创建Secret创建pod-secret.
2022-07-06 17:50:10 319 1
原创 kubernetes-高级存储
kubernetes引入PV和PVC两种资源对象。PV(Persistent Volume)是持久化卷的意思,是对底层的共享存储的一种抽象。一般情况下PV由kubernetes管理员进行创建和配置,它与底层具体的共享存储技术有关,并通过插件完成与共享存储的对接。PVC(Persistent Volume Claim)是持久卷声明的意思,是用户对于存储需求的一种声明。换句话说,PVC其实就是用户向kubernetes系统发出的一种资源需求申请。使用了PV和PVC之后,工作可以得到进一步的细分:存储:存储工
2022-07-06 17:44:56 222 3
原创 kubernetes-基本存储
EmptyDir是最基础的Volume类型,一个EmptyDir就是Host上的一个空目录。EmptyDir是在Pod被分配到Node时创建的,它的初始内容为空,并且无须指定宿主机上对应的目录文件,因为kubernetes会自动分配一个目录,当Pod销毁时, EmptyDir中的数据也会被永久删除。 EmptyDir用途如下:临时空间,例如用于某些应用程序运行时所需的临时目录,且无须永久保留一个容器需要从另一个容器中获取数据的目录(多容器共享目录)接下来,通过一个容器之间文件共享的案例来使用一下Empt
2022-07-06 17:29:51 157
原创 kubernetes-Ingress详解
Service对集群之外暴露服务的主要方式有两种:NotePort和LoadBalancer,但是这两种方式,都有一定的缺点:基于这种现状,kubernetes提供了Ingress资源对象,Ingress只需要一个NodePort或者一个LB就可以满足暴露多个Service的需求。工作机制大致如下图表示:实际上,Ingress相当于一个7层的负载均衡器,是kubernetes对反向代理的一个抽象,它的工作原理类似于Nginx,可以理解成在Ingress里建立诸多映射规则,Ingress Controll
2022-07-05 17:39:03 220
原创 kubernetes-Service详解
在kubernetes中,pod是应用程序的载体,我们可以通过pod的ip来访问应用程序,但是pod的ip地址不是固定的,这也就意味着不方便直接采用pod的ip对服务进行访问。为了解决这个问题,kubernetes提供了Service资源,Service会对提供同一个服务的多个pod进行聚合,并且提供一个统一的入口地址。通过访问Service的入口地址就能访问到后面的pod服务。Service在很多情况下只是一个概念,真正起作用的其实是kube-proxy服务进程,每个Node节点上都运行着一个kube
2022-07-05 17:22:08 373
原创 Pod控制器详解-Job/CronJob(CJ)
Pod是kubernetes的最小管理单元,在kubernetes中,按照pod的创建方式可以将其分为两类:在kubernetes中,有很多类型的pod控制器,每种都有自己的适合的场景,常见的有下面这些:主要用于负责**批量处理(一次要处理指定数量任务)短暂的一次性(每个任务仅运行一次就结束)**任务。Job特点如下:创建pc-job.yaml,内容如下:CronJob(CJ)CronJob控制器以 Job控制器资源为其管控对象,并借助它管理pod资源对象,Job控制器定义的作业任务在其控制器资源
2022-07-04 17:59:40 502
原创 Pod控制器-DaemonSet(DS)
Pod是kubernetes的最小管理单元,在kubernetes中,按照pod的创建方式可以将其分为两类:在kubernetes中,有很多类型的pod控制器,每种都有自己的适合的场景,常见的有下面这些:DaemonSet类型的控制器可以保证在集群中的每一台(或指定)节点上都运行一个副本。一般适用于日志收集、节点监控等场景。也就是说,如果一个Pod提供的功能是节点级别的(每个节点都需要且只需要一个),那么这类Pod就适合使用DaemonSet类型的控制器创建。DaemonSet控制器的特点:下面先来看下D
2022-07-04 17:52:42 244
原创 Pod控制器详解-Horizontal Pod Autoscaler(HPA)
Pod是kubernetes的最小管理单元,在kubernetes中,按照pod的创建方式可以将其分为两类:在kubernetes中,有很多类型的pod控制器,每种都有自己的适合的场景,常见的有下面这些:在前面的课程中,我们已经可以实现通过手工执行kubectl scale命令实现Pod扩容或缩容,但是这显然不符合Kubernetes的定位目标–自动化、智能化。 Kubernetes期望可以实现通过监测Pod的使用情况,实现pod数量的自动调整,于是就产生了Horizontal Pod Autoscaler
2022-07-04 17:48:15 1942
原创 Pod控制器详解-Deployment(Deploy)
Pod是kubernetes的最小管理单元,在kubernetes中,按照pod的创建方式可以将其分为两类:在kubernetes中,有很多类型的pod控制器,每种都有自己的适合的场景,常见的有下面这些:为了更好的解决服务编排的问题,kubernetes在V1.2版本开始,引入了Deployment控制器。值得一提的是,这种控制器并不直接管理pod,而是通过管理ReplicaSet来简介管理Pod,即:Deployment管理ReplicaSet,ReplicaSet管理Pod。所以Deployment比R
2022-07-04 17:46:32 677
原创 Pod控制器-ReplicaSet(RS)
Pod是kubernetes的最小管理单元,在kubernetes中,按照pod的创建方式可以将其分为两类:在kubernetes中,有很多类型的pod控制器,每种都有自己的适合的场景,常见的有下面这些:ReplicaSet的主要作用是保证一定数量的pod正常运行,它会持续监听这些Pod的运行状态,一旦Pod发生故障,就会重启或重建。同时它还支持对pod数量的扩缩容和镜像版本的升降级。ReplicaSet的资源清单文件:在这里面,需要新了解的配置项就是spec下面几个选项:replicas:指定副本数
2022-07-04 17:44:52 413
原创 Kubernetes实战入门
NamespaceNamespace是kubernetes系统中的一种非常重要资源,它的主要作用是用来实现多套环境的资源隔离或者多租户的资源隔离。默认情况下,kubernetes集群中的所有的Pod都是可以相互访问的。但是在实际中,可能不想让两个Pod之间进行互相的访问,那此时就可以将两个Pod划分到不同的namespace下。kubernetes通过将集群内部的资源分配到不同的Namespace中,可以形成逻辑上的"组",以方便不同的组的资源进行隔离使用和管理。可以通过kubernetes的授权机制
2022-05-25 11:30:32 678
转载 kubernetes资源管理
资源管理介绍在kubernetes中,所有的内容都抽象为资源,用户需要通过操作资源来管理kubernetes。kubernetes的本质上就是一个集群系统,用户可以在集群中部署各种服务,所谓的部署服务,其实就是在kubernetes集群中运行一个个的容器,并将指定的程序跑在容器中。kubernetes的最小管理单元是pod而不是容器,所以只能将容器放在Pod中,而kubernetes一般也不会直接管理Pod,而是通过Pod控制器来管理Pod的。Pod可以提供服务之后,就要考虑如何访问Pod中服务,
2022-05-25 11:07:43 151
原创 kubernetes集群环境搭建
前置知识点目前生产部署Kubernetes 集群主要有两种方式:kubeadmKubeadm 是一个K8s 部署工具,提供kubeadm init 和kubeadm join,用于快速部署Kubernetes 集群。官方地址:https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm/二进制包从github 下载发行版的二进制包,手动部署每个组件,组成Kubernetes 集群。Kubeadm 降低部署门槛,但屏蔽了很
2022-05-20 17:30:46 109
转载 Python中typing 模块和类型注解的使用
类型注解在 Python 3.5 中,Python PEP 484 引入了类型注解(type hints),在 Python 3.6 中,PEP 526 又进一步引入了变量注解(Variable Annotations),所以上面的代码我们改写成如下写法:a: int = 2print('5 + a =', 5 + a)def add(a: int) -> int: return a + 1具体的语法是可以归纳为两点:在声明变量时,变量的后面可以加一个冒号,后面再写上变
2022-04-27 11:12:06 1771 5
原创 git 已有代码迁移
密码/密钥配置使用CodeHub前,需要配置SSH密钥或HTTPS密码。SSH密钥是使用SSH协议和代码托管服务端交互的凭证,HTTPS密码是使用HTTPS协议和代码托管服务端交互的凭证。Git终端用户必须配置其中一种协议才能和CodeHub进行交互,详细配置可以参考华为云指导设置SSH密钥/HTTPS密码。代码仓库迁移企业迁移代码库包括三种场景:场景一:迁移代码并保留完整LOG、标签等信息(只会保留本地分支,远端分支将被遗失)。1.克隆GitLab仓库到本地。git clone GitL
2022-03-25 15:46:28 2345 2
原创 Ubuntu20.04 安装 JupyterLab
JupyterLab 是 Jupyter 项目的下一代基于Web的用户界面,根据官方文档,JupyterLab 最终将取代经典的Jupyter Notebook下面我们看一下如何在 Ubuntu Server 20.04 下安装 JupypterLab 吧准备工作安装最新版 Python3、pip3 及 nodejs,用 Anaconda 也可以安装JupyterLabpip3 install jupyterlab# 或者使用# conda install -c conda-forge .
2021-12-31 14:31:22 4859
原创 python3 +ip2region 离线IP库地址文件实现毫秒级查询ip地址信息
序言ip2regionip2region - 离线的ip地址查询库,ip到地区的映射库,提供二进制,B树,内存搜索三种查询算法,查询速度非常快。支持Java,PHP,C,Python,Nodejs,Golang,C#等语言,本文以Python为例前期准备在GitHub上克隆下来源文件地址- 下载完的文件:解压文件分别找到ip2region-master\data\ip2region.db和ip2region-master\binding\python\ip2Region.py创建
2021-12-23 11:55:37 4605 2
原创 python3 实现图片验证码
代码:from io import BytesIOfrom random import SystemRandom, randintfrom PIL import Image, ImageDraw, ImageFontimport base64class Captcha: char_collection = 'abcdefghijkmnopqrstuvwxyzABCDEFGHIJKMNOPQRSTUVWXYZ123456789' def __init__(self, widt
2021-12-12 23:25:11 550
原创 前端CryptoJS和后端(java python)crypto实现前后端密码加密解密功能
前端代码// 1. vue package.json 引入crypto-js的依赖:"crypto-js": "^4.0.0", // 导入import CryptoJS from 'crypto-js';// 这两个必须是16位前后端一致const key = CryptoJS.enc.Utf8.parse('FaceSunAweSome_K');const iv = CryptoJS.enc.Utf8.parse('FaceSunAweSomeIV'); // 加密const encr
2021-12-09 18:27:30 1602
原创 python3 neo4j 图数据库自定义类
neo4j图数据库python包下载pip3 install py2neo自定义neo4j数据库的python类from py2neo import Graph, NodeMatcher, RelationshipMatcher, Node, Relationshipimport uuidimport NEO4J_HOST, NEO4J_PORT, NEO4J_AUTHclass MyNeo4j: def __init__(self, host="127.0.0.1", port
2021-11-10 14:45:15 1566
原创 docker 安装 openldap 和 phpldapadmin
项目地址项目地址服务器安装获取相关镜像docker pull osixia/openldapdocker pull osixia/phpldapadmin部署docker run \ -d \ -p 389:389 \ -p 636:636 \ -v /usr/local/ldap:/usr/local/ldap \ -v /data/openldap/ldap:/var/lib/ldap \ -v /data/openldap/sla
2021-11-01 18:23:31 2313
原创 python3 实现rc4加密和解密
概括:在密码学中,RC4(来自Rivest Cipher 4的缩写)是一种流加密算法,密钥长度可变。它加解密使用相同的密钥,因此也属于对称加密算法。RC4是有线等效加密(WEP)中采用的加密算法,也曾经是TLS可采用的算法之一。源码import codecsMOD = 256def KSA(key): """ Key Scheduling Algorithm (from wikipedia): for i from 0 to 255 S[
2021-10-26 15:36:13 1547
原创 python3 对比两个字典的差异
dict1 = {'a':1,'b':2,'c':3,'d':4}dict2 = {'a':1,'b':2,'c':5,'e':6} differ = set(dict1.items()) ^ set(dict2.items())print(differ)#所有差异#输出:{('c', 3), ('e', 6), ('c', 5), ('d', 4)}diff = dict1.keys() & dict2 diff_vals = [(k, dict1[k], dict2[k]) f
2021-10-14 10:09:55 1796
原创 pyenv 安装与使⽤
安装依赖⾸先安装常⽤ Python 依赖库,不然编译好的 Python 没有对应功能apt-get install libc6-dev gcc make build-essential libssl-dev zlib1g-devlibbz2-dev libreadline-dev libsqlite3-dev wget curl llvm openssl openssl安装 pyenvgit clone https://github.com/pyenv/pyenv.git ~/.pyenv
2021-09-17 12:18:53 157
原创 CentOS 7 安装 Elasticsearch5.2.2
一、准备工作*安装JDK7及以上版本*安装教程二、解压mv elasticsearch-5.2.2.tar.gz /usr/local/cd /usr/localtar zxvf elasticsearch-5.2.2.tar.gzln -sv elasticsearch-5.2.2 elasticsearch三、创建elsearch用户组及elsearch用户groupadd elsearchuseradd elsearch -g elsearch -p elasticsearchc
2021-09-13 10:59:42 128
cmder v1.3.14 官网版.zip
2020-08-07
MobaXterm_installer_12.3.msi
2019-11-05
sublime_text.exe
2018-10-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人