云存储云计算
张小凡vip
2012年中级职称软件设计师;
2017年高级职称项目管理师;
2018年CSM敏捷认证;
2019年csdn20周年直播嘉宾;
2020年高级健康管理师;
清华大学出版社《MongoDB游记》数据库教程书作者。
专注于数据挖掘技术与大数据,云计算与存储等技术的学习与研究。
擅长系统响应式开发、数据采集数据清洗和数据分析,分布式云存储运算等技术。
熟悉数据的采集、数据的清洗(ETL)、存储(Data Storage)、挖掘(Data Mining)整个流程。
熟悉后台系统、云存储计算平台的搭建,擅长解决架构过程中遇到的疑难问题。
常用开发语言:java、python、c#、perl、sql。
展开
-
遇到的问题--docker---gitlab---k8s---error pulling image configuration: Get https://production.cloudflare.
情况目前使用helm在k8s中安装了gitlab,gitlab runner在跑ci/cd时获取镜像失败。报错如下:error pulling image configuration: Get https://production.cloudflare.docker.com完整报错如下 :error pulling image configuration: Get https://production.cloudflare.docker.com/registry-v2/docker/regist原创 2021-07-16 15:35:56 · 2184 阅读 · 0 评论 -
遇到问题--k8s--helm安装elasticsearch报错java.lang.IllegalArgumentException: unknown setting [node.remote_clu
情况使用helm安装elasticsearch 使用配置和命令如下:master.yaml---nodeGroup: "master"roles: master: "true" ingest: "false" data: "false"replicas: 3image: 123.dkr.ecr.cn-northwest-1.amazonaws.com.cn/k8s-env/elasticsearchimageTag: 7.6.2resources: requests原创 2020-12-03 18:32:19 · 2417 阅读 · 0 评论 -
遇到问题--k8s--helm安装prometheus报错Error: failed to download “stable/prometheus-operator“
情况使用helm安装prometheus命令如下:helm install prometheus stable/prometheus-operator 遇到报错:Error: failed to download "stable/prometheus-operator" (hint: running `helm repo update` may help)根据提示更新helm的仓库如下:zhangxiaofans-MacBook-Pro:prometheus joe$ helm rep原创 2020-12-03 11:58:23 · 4846 阅读 · 0 评论 -
k8s--普通k8s集群---使用rolebinding限制或增加访问命名空间以及可执行操作权限
权限控制原理 RBAC——基于角色的访问控制基于角色的访问控制(Role-Based Access Control, 即”RBAC”)k8s使用”rbac.authorization.k8s.io” API Group实现授权决策,允许管理员通过Kubernetes API动态配置策略。也就是说 每个k8s用户调用k8s的api时,都会经过一层角色的权限校验,比如 我当前的用户或者 服务账户(serviceaccount)关联的是哪一个角色,就拥有这一个角色的访问权限。基于这样的原理,k8s可以很灵原创 2020-11-13 18:34:00 · 10977 阅读 · 15 评论 -
遇到问题---eks--gitlab-runner----docker on docker运行失败---Cannot connect to the Docker daemon at unix:///v
情况在k8s环境中部署一个gitlab-runner用于ci/cdgitlab-runer 采用helm进行部署,runner pod使用独立的serviceAccountName,所以配置时需要创建必要的角色、角色绑定运行时报错如下:Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running原因我们采用了 docker on docker的模式运行 gitla原创 2020-11-12 18:25:55 · 2136 阅读 · 0 评论 -
遇到问题---eks--gitlab-runner----docker dns解析失败---docker build Temporary failure in name resolution
情况使用eks集群部署了一个gitlab-runner用来做ci/cd,但是发现 gitlab-runner这个pod中 去下载包时报错 docker build Temporary failure in name resolutiondocker 容器内部 dns 解析失败的问题发现在 docker run 启动容器之后,容器内部访问外部的接口总是提示无法解析 dns,然而容器外部是可以解析的,dns的配置也没有任何问题。用 docker exec -it contaner_n原创 2020-11-12 18:16:46 · 1269 阅读 · 0 评论 -
遇到问题---eks--spot混合实例--无法自动伸缩的问题--wouldn‘t fit if a new node is added
情况我们在前面的文章中详细讲解了如何搭建一个 eks集群Kubernetes–k8s—进阶–AWS托管式容器服务EKS–EKS全面介绍和安装使用在使用eksctl命令创建eks集群的配置文件中 定义了 spot的nodegroup。如下:instancesDistribution: instanceTypes: ["c5.4xlarge","c5.9xlarge","c5.18xlarge","r4.8xlarge","r5.8xlarge",] onDemandBaseCap原创 2020-11-12 17:23:07 · 1713 阅读 · 0 评论 -
遇到问题--k8s--KubeOperator--部署完成后页面无法显示出来required authorization token not found
情况KubeOperator版本3.2 使用离线安装包安装 k8skubeoperator-release-v3.2.0.tar.gz系统:centos 7.5k8s集群项目基本信息名称 k8s-private版本 v1.18.6网络类型 flannel容器运行时 docker架构 amd64来源 本地k8s集群项目 安装完成后 概览以及节点等页面显示不出来,F12查看 页面请求 相关api报错required authorization token not found例如:ht原创 2020-10-29 11:07:58 · 2562 阅读 · 1 评论 -
AWS EC2实例Linux系统创建root用户并更改为root用户登录
对于刚创建AWS EC2实例,或者经常使用AWS 实例的小伙伴们来说,刚创建的EC2实例是没有ROOT权限的,因此不能直接使用ROOT用户去登陆实例,也无法获取到root权限。一般情况下,EC2实例默认是以ec2-user为用户名去登陆的(除了Ubuntu系统实例,它的默认用户名是ubuntu,centos系统实例,它的默认用户名是centos)。对于如何去创建root及密码,以及更改用户登陆方式–改为root用户登陆实例,就显得很有必要。下文就是帮助大家如何去创建root密码,以及如何ROOT用户去转载 2020-10-26 14:54:53 · 2547 阅读 · 1 评论 -
kubernetes---CentOS7使用KubeOperator安装k8s图文完整版
KubeOperator简介KubeOperator与Kubeadm、kops的区别我们在之前的文章中已经使用Kubeadm安装过k8s:kubernetes—CentOS7安装kubernetes1.11.2图文完整版Kubeadm是Kubernetes官方推出的快速部署Kubernetes的集群工具,其思路是将Kubernetes相关服务容器化以简化部署。安装k8s集群的工具有很多:Kubeadm,Kops,KubeOperator 和 RKE(Rancher)等。实际上它们 是 适合不同场原创 2020-10-20 15:49:06 · 4101 阅读 · 5 评论 -
遇到问题---k8s--efs--ConfigParser.NoSectionError: No section: ‘mount-watchdog‘
情况根据之前的文章进行efs的驱动安装:aws–efs—使用efs创建k8s的动态pvc然后发现efs无法挂载,查看pvc的日志报错如下:E0922 03:13:38.113819 1 efs_watch_dog.go:131] amazon-efs-mount-watchdog[Error]: Traceback (most recent call last): File "/usr/bin/amazon-efs-mount-watchdog", line 948, in <原创 2020-10-10 16:57:07 · 837 阅读 · 0 评论 -
Kubernetes--k8s--进阶--全面了解HPA--部署HPA实现高可用和成本控制
什么是HPA我们的k8s集群 如果是 针对pod层面是有Cluster Autoscaler弹性伸缩来做高可用和成本控制的优化的。也就是说 我们一开始 没有pod任务在运行的时候 不需要node节点时,k8s的集群可以只启动少量node节点来做常驻服务pod的部署。 当 有大批量的任务pod 需要运行时, k8s集群会根据 每个pod需要的资源状态来 申请启动新的node节点。 当任务高峰期过后,pod运行的数量减少,node的数量就会收缩,不使用的node会被回收,保证 k8s集群的高可用低成本运行。原创 2020-10-09 17:23:49 · 6426 阅读 · 1 评论 -
遇到问题--k8s--eks集群使用nodeselector时spot类型的nodegroup组无法从0扩展node(s) didn‘t match node selector
情况我们使用eksctl进行集群的创建,nodegroup的定义如下: - name: test-0-nodeselect-v1 minSize: 0 maxSize: 3 privateNetworking: true availabilityZones: ["cn-northwest-1a","cn-northwest-1b","cn-northwest-1c"] volumeSize: 200 kubeletExtraConfig: kubeRes原创 2020-09-24 17:51:17 · 2203 阅读 · 0 评论 -
Kubernetes--k8s---进阶--AWS托管式容器服务EKS--EKS全面介绍和安装使用
EKS简介Kubernetes是Google开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。在Kubernetes中,我们可以创建多个容器,每个容器里面运行一个应用实例,然后通过内置的负载均衡策略,实现对这一组应用实例的管理、发现、访问,而这些细节都不需要运维人员去进行复杂的手工配置和处理。在AWS上,亚马逊推出了Amazon Elastic Kubernetes Service (Amazon EKS) ,这是一项完全托管的 Kubernetes 服务。[外链图片转存失败,源原创 2020-09-03 16:08:05 · 16466 阅读 · 0 评论 -
Kubernetes--k8s---进阶--管理工具helm--helm全面介绍
简介Helm is the best way to find,share,and use software built for Kubernetes.Helm号称 构建k8s运行的软件 最好的一种途径和方式,实际上Helm是一个软件管理服务,通过Helm Charts的方式帮助我们定义,安装和升级 即使很复杂的 k8s 应用和软件。有点类似于 Ubuntu 中使用的apt、Centos中使用的yum 或者Python中的 pip 。helm官网git地址helm官方文档helm中文文档He原创 2020-07-27 16:19:22 · 5398 阅读 · 0 评论 -
kubernetes--基础--k8s的pod之间的服务访问
配置了ingress后 外网可以访问 配置的域名来 访问到服务api但是k8s集群内pod用 外网地址去访问时 走的是外网的流量。k8s的pod之间相互访问,最好使用servicename的方式去访问。servicename.namespace:port/api或者servicename:port/api数据库类型的配置使用servicename配置文件中路由地址使用http://servicename.namespace:port/api或者servicename:por原创 2020-06-19 11:46:04 · 9838 阅读 · 1 评论 -
遇到问题---pod使用pvc存储时报错---had volume affinity conflict
遇到问题使用yaml创建mysql服务时使用pvc作为持久存储,使用的yaml如下:storageclass.ymlkind: StorageClassapiVersion: storage.k8s.io/v1metadata: name: nfsprovisioner: kubernetes.io/no-provisionermysql-pv.ymlapiVersion: v1kind: PersistentVolumemetadata: name: mysql-pvsp原创 2020-05-11 15:58:15 · 1876 阅读 · 0 评论 -
kubernetes--k8s--web管理界面使用--dashboardv1.8.3版本安装详细步骤
安装dashboard监控界面 (仅主节点运行)dashboard官网参考使用命令kubectl create -f https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml输出如下:[root@k8s kubernetes...原创 2020-04-27 17:48:39 · 7115 阅读 · 0 评论 -
Kubernetes--k8s---kubectl安装和设置
使用Kubernetes命令行工具kubectl可以在Kubernetes上部署和管理应用程序。使用kubectl,可以检查集群资源; 创建,删除和更新组件。以下是安装kubectl的几种方法。通过curl安装kubectl二进制文件MacOS下载最新版本的命令: curl -LO https://storage.googleapis.com/kubernetes-release/re...转载 2020-04-27 17:38:17 · 1845 阅读 · 0 评论 -
docker---通过images的镜像反推出Dockerfile
没有命令直接 通过image镜像 就能反编译 获得 Dockerfile。但是 我们可以根据 docker history命令 进行反推。docker history --helpUsage: docker history [OPTIONS] IMAGEShow the history of an imageOptions: --format string Prett...原创 2020-04-27 16:11:13 · 5676 阅读 · 1 评论 -
aws--efs---使用efs创建k8s的动态pvc
我们之前使用EBS作为k8s的动态pvc的pv,但是EBS不支持ReadWriteMany类型的声明。所以尝试使用efs作为存储底层来声明pvc。动态pvc声明方案创建efs文件存储系统使用命令# 创建EFS Security groupVPC_ID=$(aws eks describe-cluster --name ${CLUSTER_NAME} --region ${AWS_REG...原创 2020-03-24 18:14:52 · 4094 阅读 · 1 评论 -
通过 Amazon EFS 对 NFS 文件系统权限进行细粒度控制
传统的NFS服务是企业应用里非常常见的网络存储服务。用户在搭建NFS服务时,需要对权限进行相应的设置,以防止未授权的客户端非法访问远程文件存储。NFS的权限管理主要依赖Linux文件系统的文件权限管理机制,并通过 /etc/exports 进行文件系统共享的参数设置,如授权客户端的网段,是否只读等。如果需要更进一步的认证机制,需要部署Kerberos,相应的配置也并不轻松。当我们将现有的NFS服...转载 2020-03-24 17:28:30 · 1304 阅读 · 0 评论 -
如何测试 Amazon Elastic File System
许多客户对 Amazon EFS 倍加推崇,因为它使得在云中创建并运行高度可扩展、高度可用且高持久性的共享文件系统变得格外轻松。只需短短数秒,就可以创建一个符合 NFSv4 的文件系统,并将其挂载到多个(多达数千个)Amazon EC2 实例或本地服务器上。Amazon EFS 为基于 Linux 的工作负载提供了一个简单、可扩展且有弹性的文件系统,并且可在不中断应用程序的情况下按需扩展到 PB...转载 2020-03-24 16:46:15 · 617 阅读 · 0 评论 -
利用 EFS 快速搭建 NFS 文件系统
Amazon Elastic File System (Amazon EFS) 是AWS云上一个全托管的弹性NFS文件系统服务。EFS具有简单易用并可扩展的特性,与AWS的其他云服务紧密集成,同时也可以被本地数据中心所使用。EFS设计为可根据文件存储变化而自动进行扩缩容,同时对应用不产生中断。用户无须手动去进行存储空间的管理。EFS托管服务会自动管理文件存储底层的基础架构,用户无须关心文件系统部署...转载 2020-03-24 16:33:32 · 1966 阅读 · 0 评论 -
aws----文件存储efs的全面了解
efs简介Amazon Elastic File System可扩展的、弹性原生云 NFS 文件系统,每月 0.08 USD/GBAmazon EFS 是一项完全托管的服务,让您可以轻松地在 Amazon 云中设置和扩展文件存储,并对其进行成本优化。只需在 AWS 管理控制台中单击几次,您就可以创建文件系统,供 Amazon EC2 实例通过文件系统界面(使用标准操作系统文件 I/O API...原创 2020-03-24 15:47:28 · 8362 阅读 · 2 评论 -
k8s--kubernetes--argo----使用动态存储PVC---基于nfs 的storageclass
PVC简介Docker中有 volumes的概念,在Docker中,volume是 对 物理节点服务器node路径目录的一种映射,也就是 我们可以把服务器的一个目录挂载给镜像使用。同样的,k8s创建的pod也可以挂载volume,而且不仅仅支持 pod所在的服务器node的目录映射,也可以挂载其他网络存储的作为目录挂载。k8s支持volumes的类型如下:1、awsElasticBlock...原创 2020-03-20 15:41:59 · 2924 阅读 · 0 评论 -
docker--k8s---终端terminal和普通程序以及jupyter notebook-创建永久的静态环境变量--创建动态的环境变量
终端terminal和普通程序linux系统的中主要有两种启用系统环境的情况,一种是 用户登录,比如进入bash或者sh等命令行操作shell界面,一种是 用户不登录,而是程序自动运行。根据 两种情况,适用的创建永久的环境变量的方式就会有所不同。创建永久的静态环境变量静态环境变量 是指 内容不会变动的,是一个固定的值。这种情况的环境变量 直接在Dockerfile种使用ENV 指定即可。...原创 2020-03-19 16:54:02 · 1634 阅读 · 0 评论 -
k8s---使用ingress配置域名转发时的traefik路径规则详解
ingress中traefik的使用方式如下:apiVersion: extensions/v1beta1kind: Ingressmetadata: name: spark-client-test namespace: default annotations: kubernetes.io/ingress.class: traefik traefik.fronte...原创 2020-02-25 19:42:02 · 15314 阅读 · 0 评论 -
hadoop组件---spark实战----spark on k8s模式k8s原生方式安装spark2.4.4 cluster mode
目前最新稳定版本2.4.4的官方安装文档环境准备1、使用spark2.3以上的spark版本2、已经在运行的k8s集群版本需要大于1.6使用命令查询kubectl version输出为:zhangxiaofans-MacBook-Pro:Downloads joe$ kubectl versionClient Version: version.Info{Major:"1", M...原创 2020-01-20 16:24:24 · 1273 阅读 · 2 评论 -
hadoop组件---spark理论----spark on k8s模式的三种方式全面了解
我们在之前的文章中 已经了解了 spark支持的模式,其中一种就是 使用k8s进行管理。hadoop组件—spark----全面了解spark以及与hadoop的区别是时候考虑让你的 Spark 跑在K8s 上了spark on k8s的优势–为什么要把Spark部署在k8s上大数据和云计算一直分属两个不同的领域。大数据主要关注怎么将数据集中起来,挖掘数据的价值;云计算主要关注怎么更高效地...原创 2020-01-19 18:05:34 · 5830 阅读 · 0 评论 -
hadoop组件---spark实战----spark on k8s模式Spark Standalone on Docker方式安装spark
在本文的例子中,你将使用 Kubernetes 和 Docker 创建一个功能型 Apache Spark 集群。你将使用 Spark standalone 模式 安装一个 Spark master 服务和一组 Spark workers 。源代码Docker 镜像主要基于 https://github.com/mattf/docker-spark源码托管在 https://github....转载 2020-01-19 15:35:08 · 1879 阅读 · 0 评论 -
是时候考虑让你的 Spark 跑在K8s 上了
原文链接:https://mp.weixin.qq.com/s/RT7QNQNQ0NRsAmwUMtw6ig编者荐语:Spark社区从2.3版本开始,已经可以很好的支持跑着Kubernetes上了。这对于统一资源池,提高整体资源利用率,降低运维成本(特别是技术栈归一)有着非常大的帮助。这些趋势是一个大数据人不得不重视的信号,所以一起提前了解并考虑起来吧!以下文章来源于容器魔方 ,作者tsjs...转载 2020-01-02 00:08:07 · 979 阅读 · 0 评论 -
云监控---grafana使用mysql数据源创建dashboard--全面解析
grafana的dashboard简介Grafana是一款采用 go 语言编写的开源应用,主要用于大规模指标数据的可视化展现,是网络架构和应用分析中最流行的时序数据展示工具,目前已经支持绝大部分常用的时序数据库。官网操作文档grafana安装经常被用作基础设施的时间序列数据和应用程序分析的可视化。Grafana 主要特性:灵活丰富的图形化选项;可以混合多种风格;支持多个数据源;...原创 2019-12-19 18:43:50 · 8429 阅读 · 3 评论 -
aws-s3-使用boto3根据路径设置生命周期
使用boto3根据路径设置生命周期–过期删除import boto3import times3 = boto3.resource('s3', region_name='cn-xxxxxx-1')def set_lifecycle_30days_expiration(bucketname,prefix,rule_name): json ={ 'Rule...原创 2019-12-04 15:29:41 · 1881 阅读 · 0 评论 -
遇到问题--Kubernetes--argo--output does not exist
情况在使用argo进行流程串联时 使用了output进行文件输出。在生产环境的argo中运行,即时需要output的文件在pod中不存在,也能正常运行 进入后续步骤。但是内测环境的argo 同样的情况下会报错。报错如下:path /mendel/need_update_barcode.txt does not exist (or /mendel/need_update_barcode.t...原创 2019-11-28 16:52:47 · 1055 阅读 · 0 评论 -
aws-s3-使用boto3根据路径和间隔时间进行清理删除启用版本控制的文件
前面我们做过一版清理删除的脚本。但是 发现 针对启用了版本控制的桶是不生效的,不能永久删除,只是在版本控制中加上了一个删除标记的版本。如果要永久删除就需要带version_id指定删除。boto3中提供了ObjectVersion实体使用脚本如下:import boto3import timeimport datetimefrom aws_money.settings import...原创 2019-11-26 11:04:57 · 1809 阅读 · 0 评论 -
aws-s3-使用boto3根据路径和间隔时间进行清理删除
使用python3.6以上import boto3import timeimport datetime# https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/s3.htmls3 = boto3.resource('s3', region_name='cn-xxxxxxx-1')d...原创 2019-11-22 18:11:21 · 1672 阅读 · 0 评论 -
aws--s3存储类别--对s3进行存储分层优化
我们在之前的文章中已经尝试获取s3的所有存储的文件大小和 最后修改时间 清洗入库。现在可以 对 s3存储进行 精细化的 优化了。比如 对s3存储进行分层优化。这样可以把我们的成本 明显的降低。s3的存储目前有6层,具体什么样的数据 选择 哪种, 本篇文章进行分析。s3存储 提供的 分层类型Amazon S3 提供一系列适合不同使用案例的存储类。1、S3 标准(适用于频繁访问的数据的通用...原创 2019-11-19 16:32:38 · 3638 阅读 · 0 评论 -
遇到问题--k8s--异常排查--pod重启在执行任务时自动重启的
情况执行一个长连接访问的方法,执行到一半后 没有日志输出了。初步判断为pod已经被重启了。原因使用命令排查如下:[zzq@localhost zzq]$ kubectl get pods |grep report-apireport-api-6b4cdf5f6d-cn2vg 1/1 Running 0 ...原创 2019-10-28 16:25:29 · 9032 阅读 · 0 评论 -
Docker积累(一)---docker安装mysql和使用
docker安装mysql很方便快捷,但是容易遇到一些问题 以及 有些细节需要注意 不然容易造成数据丢失。本篇文章记录 docker安装mysql的过程和遇到的问题 以及注意事项。系统环境 centos搜索MySQL镜像$ docker search mysqlINDEX NAME DESCRIPTION ...原创 2019-10-24 12:08:13 · 1343 阅读 · 0 评论