自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(50)
  • 资源 (1)
  • 收藏
  • 关注

原创 K3s - 安装部署

aaa

2020-08-31 10:27:27 7211

原创 Kubernetes-Helm基本介绍

Helm 介绍Helm可帮助您管理Kubernetes应用程序 - Helm Charts可帮助您定义,安装和升级最复杂的Kubernetes应用程序。与ubuntu下的apt, centos下的yum类似的管理工具。kubernetes在创建资源时使用yaml形式存储,随着资源复杂度增加,yaml中的内容也越来越多,helm chart通过管理包的形式将资源数据分散在不同文件中。h...

2019-12-04 10:59:54 533

原创 Kubernetes-源码分析预备知识(待续)

持续更新中…常见库介绍cobraCobra提供了很多构建命令行接口的特性。基本的Cobra功能说明可以在 https://blog.gopheracademy.com/advent-2014/introducing-cobra/ 找到。基本示例如下package mainimport ( "fmt" "github.com/spf13/cobra" ...

2019-10-15 10:27:47 236

原创 Docker-使用 overlayfs 作为后端存储遇到的问题

文章目录问题描述问题原因相关知识点解决办法问题描述在一个测试环境中,发现容器中无法删除镜像中只读层的文件,现象:问题原因参考 https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/7.2_Release_Notes/technology-preview-file_systems.html...

2019-10-15 10:26:44 566

原创 Docker-存储驱动解读(AUFS/DeviceMapper/Overlay)

文章目录镜像的分层特性容器读写层的工作原理写时复制用时配置Docker存储驱动AUFSDevicemapperOverlayFS镜像的分层特性在说docker的文件系统之前,我们需要先想清楚一个问题。我们知道docker的启动是依赖于image,docker在启动之前,需要先拉取image,然后启动。多个容器可以使用同一个image启动。那么问题来了:这些个容器是共用一个image,还是各自将...

2019-07-25 10:46:23 2040

原创 Kubernetes-Docker容器故障排除工具

Docker容器本着轻量化的原则,很多容器镜像在制作的时候只安装了服务需要的软件包这样做确实能达到容器轻量化,启动快等特点,但是同时也有个问题就是由于镜像中最基本的工具也没安装,导致排查问题是有很大的困扰,尤其是网络问题的排查,很多容器镜像中ifconfig、netstat、lsof、tcpdump等工具都没有比如dockerhub提供的mysql容器中 netstat、tcp工具都没有,...

2019-07-18 16:09:09 527

原创 Kubernetes-动态PV&PVC

目录PV&PVC基本使用StorageClass&ProvisionerPVC的扩容PV&PVC基本使用Kubernetes中PV和PVC的概念就不在介绍了PV和PVC的使用方式是管理员先创建一系列各种大小的PV,形成集群中的存储资源池用户创建pvc时需要指定大小,这个时候会从pv池中寻找合适的大小并将pv绑定到pvc上使用举例说明kub...

2019-07-12 11:11:59 3056

原创 Kubernetes-Secret使用说明

Kubernetes提供Secret资源用于解决密码、token、密钥等敏感数据的配置问题,而不需要把这些敏感数据暴露到镜像或者Pod Spec中。Secret可以以Volume或者环境变量的方式使用。Secret类型Opaque:base64编码格式的Secret,用来存储密码、密钥等;但数据也通过base64 –decode解码得到原始数据,所有加密性很弱。 kubernetes.i...

2019-07-08 09:27:01 3539

转载 Kubernetes-ConfigMap使用说明

我们知道,在几乎所有的应用开发中,都会涉及到配置文件的变更,比如说在web的程序中,需要连接数据库,缓存甚至是队列等等。而我们的一个应用程序从写第一行代码开始,要经历开发环境、测试环境、预发布环境只到最终的线上环境。而每一个环境都要定义其独立的各种配置。如果我们不能很好的管理这些配置文件,你的运维工作将顿时变的无比的繁琐。为此业内的一些大公司专门开发了自己的一套配置管理中心,如360的Qcon,百...

2019-07-05 09:26:25 354

原创 Kubernetes-手动部署1.13.0

目录一、初始化1. 主机名设置(所有节点)2. 免秘钥登录(步骤略)3. 系统配置初始化(所有节点)4. 初始化证书(只在k8s-node1执行)二、安装1. Etcd安装配置(master节点上执行)2. Flannel安装配置3. Docker安装配置4. Kubernetes 安装配置目前社区提供了很多工具自动化的安装部署Kubernetes,包括...

2019-07-01 18:43:19 2755

原创 Kubernetes-使用kubeadmin安装部署

基础环境说明CentOS Linux release 7.5.1804 (Core)一、系统配置(所有节点都需要执行)1. 关闭防火墙systemctl stop firewalldsystemctl disable firewalld2. 禁用SELinuxsetenforce 0# 编辑文件/etc/selinux/config,将SELINUX修改为disa...

2019-07-01 14:29:19 6665

原创 Kubernetes-基于Flannel的网络原理

目录一、容器与容器之间的通信二、POD与POD之间的通信1、同一个Node上的pod之间的通信2、不同Node上的pod之间的通信3、使用tcpdump和wireshark进行分析三、Pod与Service之间的通信1、Service的类型2、ClusterIP类型的service需要的iptables规则3、NodePort类型的Service需要的ipta...

2019-07-01 10:34:22 6635 1

原创 Kubernetes-在Kubernetes中部署Tensorflow集群

知识准备1、kubernetes中的基本概念如deployment,statefulset,rc,svc,pod等;2、tensorflow分布式集群。Tensorflow架构简介使用Tensorflow进行训练分为单机模式和分布式集群模式单机模式的比较简单(略)分布式模式主要包括如下几个角色: ps服务器:进行参数处理 worker服务器:进行梯度...

2019-06-04 09:28:54 2205 1

原创 Kubernetes-Pod资源调度

Kubernetes按角色分为master和node节点,其中node节点是运行Pod的节点创建Pod的时候如何调度除了按照资源(cpu,内存)等,还有很多调度策略Label标签Label是Kubernetes核心概念之一,主要作用就是给k8s的资源记录标签,简单的key-value键值对,比如Pod、Service、Deployment、Node等都可以设置Label查看node...

2019-06-03 09:36:18 2510

原创 Kubernetes-通过nvidia-docker2使用GPU资源

目录一. Nvidia-docker二. Nvidia-docker21. 安装nvidia-docker22. nvidia-gpu-plugin安装3. 容器中运行TensorFlow一. Nvidia-dockernvidia-docker是一个可以使用GPU的docker,在Docker基础上做了一成封装目前为止,已发布发布两个大的稳定版本,其中nvidia...

2019-05-28 11:58:53 4950

原创 Kubernetes-提供服务的方式

目录一. 直接访问Pod的IP地址二. 通过Service访问1. ClusterIP类型2. NodePort类型3. Ingress类型一. 直接访问Pod的IP地址Kubernetes中的最小单位是Pod,所有的应用也是运行在Pod中的每个Pod都会被分配一个唯一的IP地址创建一个Podcat nginx-pod.yamlapiVersion: v...

2019-05-27 17:33:19 704

原创 Kubernetes-ResourceQuota配额限制

Kubernetes通过ResourceQuota来限制一个namespace下面的资源,简单的使用:创建一个namespace:cat <<EOF > create-ns-test.yamlapiVersion: v1kind: Namespacemetadata: name: testEOF kubectl create -f create-ns-t...

2019-05-27 14:48:46 3739 1

原创 Gluster分布式文件存储

目录一、GlusterFS Volume1. Glusterfs Volume介绍2. Glusterfs Volume类型介绍二、Heketi使用1. 基本安装配置2. 导入GlusterFS信息3. 创建Volume及管理4. Heheti基本原理三、基于Kubernetes的GlusterFS存储卷1. 创建StorageClass2. 创建...

2019-05-22 15:35:45 877

原创 Openstack Cinder源码分析-删除Volume(一)

删除API入口:cinder/api/v2/volumes.pydef delete(self, req, id): """Delete a volume.""" context = req.environ['cinder.context'] cascade = utils.get_bool_param('cascade', req.params) L...

2019-05-17 14:57:38 468

转载 Docker容器的网络模型

一、Docker默认自动创建的网络当安装完Docker时,Docker默认自动创建了三个网络:bridege, none和host:[root@k8s-node1 ~]# docker network lsNETWORK ID NAME DRIVER SCOPE2a0cc0d0e1ee bridg...

2019-05-17 14:55:45 787

原创 NVIDIA GPU驱动安装

一、CUDA安装./cuda_10.0.130_410.48_linux安装后会有如下提示:查看CUDA的版本号二、CUDNN安装安装命令> tar xvzf cudnn-10.0-linux-x64-v7.5.0.56.tgz> cp cuda/include/cudnn.h /usr/local/cuda/include/> c...

2019-05-16 17:55:38 5679 1

原创 编译Tensorflow

一、安装Bazel安装依赖包yum install -y epel-releaseyum install -y git java-1.8.0-openjdk-headless java-1.8.0-openjdk-devel gcc gcc-c++ make automake autoconf zip unzip编译Bazel没有针对CentOS的发布包,所以先编译安装Baz...

2019-05-16 17:50:41 463 2

转载 OpenStack对接Ceph

一、创建存储池创建volumes池,对应Cinder服务ceph osd pool create volumes 128创建images池,对应Glance服务ceph osd pool create images 128创建vms池,对应Nova服务cephosdpool create vms 128创建backups池,对应Cinder-backup服务。但这...

2019-05-16 17:45:24 316

原创 GitLab+Jenkins实现Devops持续集成

备注:环境的部署都是通过Docker容器进行部署的,Docker部署方式略一、GitLab代码仓库搭建拉取镜像docker pull gitlab/gitlab-ce创建gitlab相关的目录mkdir -p /opt/gitlab/configmkdir -p /opt/gitlab/logsmkdir -p /opt/gitlab/data启动容器dock...

2019-05-16 15:32:50 3744

原创 Openstack Cinder源码分析-创建Volume(三)

上文已经分析到,请求最终通过RPC到了cinder-scheduler中cinder-scheduler通过taskflow管理了2个任务(cinder/scheduler/flows/create_volume.py):ExtractSchedulerSpecTask该任务主要是封装参数给下一任务,无revert函数def _populate_request_spec(self...

2018-09-07 13:00:21 1393

原创 Openstack Cinder源码分析-创建Volume(二)

上文讲过创建volume最终是使用taskflow创建几个任务: // 构建了如下几个任务,依次是: // ExtractVolumeRequestTask 构造请求 // QuotaReserveTask 预留配额 // QuotaCommitTask 提交配额 // VolumeCastTask ...

2018-09-07 12:59:57 412

原创 Openstack Cinder源码分析-创建Volume(一)

Cinder创建卷的请求如下:openstack volume create &lt;name&gt; --size &lt;size&gt; 对应的restapi请求:POST /v2/{project_id}/volumes{ "volume": { "size": 10, "availability_zone": null, ...

2018-09-07 12:59:41 1575

转载 通过Libvirt创建KVM虚拟机

创建虚拟机,需要设置步骤:宿主机安装kvm相关软件 创建一个虚拟磁盘,用于安装虚拟机系统 使用libvirt安装虚拟机系统 设置虚拟机cpu,内存,网卡等参数 使用virsh 启动虚拟机创建虚拟机磁盘:虚拟磁盘用于安装虚拟机操作系统,相当于物理机的硬盘;相较于普通的raw格式,qcow2镜像格式具有以下优点更小的系统占用,文件系统不支持空洞 支持写时拷贝,镜像文件只反映底层...

2018-09-07 12:53:42 7091

原创 Openstack Cinder源码分析-理解Taskflow

先简单介绍一下TaskFlow:TaskFlow是OpenStack中的一个Python库,主要目的是让task(任务)执行更加容易可靠,能将轻量的任务对象组织成一个有序的流。TaskFlow 能够控制应用程序中的长流程业务逻辑任务的暂停、重启、恢复以及回滚, 主要用于保证长流程任务执行的可靠性和一致性。主要应用场景有如 Cinder 的 create volume 这般复杂、冗长、容易失败, 却...

2018-02-26 16:44:07 1608

原创 Openstack-Murano应用包

Murano Package是Murano部署应用的基础,Package本身不包含任何的安装包,只是描述了应用的一些基本属性等信息 标准的Murano Package长相如下:drwxr-xr-x 2 root root 34 Jul 26 14:55 Classes-rw-r--r-- 1 root root 33332 May 8 2015 logo.png-rw-r--r--

2017-11-09 16:28:51 1896

原创 Python笔记(九) -- Python HttpClient使用requests库发送http消息

# -*- coding: utf-8 -*-"""Python Httpclient for Sending http requests"""import osimport jsonimport requestsclass HttpClient(object): def __init__(self, host='localhost',

2017-08-30 16:52:03 3398

转载 Linux下安装svn

l  安装svnyum install subversion l  查看svn版本svnserve  --version l  创建svn版本库目录mkdir -p /projects/svn l  新建一个测试版本库svnadmin create /projects/svn/testsvn l  进入conf目录,配置版本库authz

2017-08-30 16:21:23 210

原创 Python笔记 - 使用APScheduler管理定时任务

APScheduler是一个python库,用于进程内任务调度。我们可以用它调度python代码,使被调度的python代码在将来某个时刻或某些时刻执行。并且,我们可以随心所欲的增加或删除任务。如果将任务存在数据库中,那么这些任务在调度器重启后仍然有效,并保持着之前的状态。当调度程序重启后,调度器将运行那些因为调度器不在而没能执行的任务。除此之外,APScheduler可以用作一个跨平台的调度器,比

2016-03-31 18:03:09 4371

原创 使用Python-Diamond收集监控数据

Diamond是使用python实现的用于收集监控数据的工具,主要收集metrics类型的数据,即数据格式一般是metric timestamp value简单来说, Diamond就是Python实现的守护进程,自动定时的从你的服务或是其它指定数据源中提取数值,并发送到指定的后端(handler) Diamond支持多种后端handler, 可以将数据发送到graphite,opentsdb,m

2015-08-05 16:39:03 3405

原创 ELK日志收集系统调研(五) -- ElasticSearch Java接口

在研究ELK日志收集系统时,顺便对于ElasticSearch的javaapi了解了下。 于是将自己写的测试代码上传做个备注。Fileinfo.java 构造数据类,模拟的是文件的具体信息。package com.elastic;import java.io.File;import java.io.IOException;import java.util.Date;import org.el

2015-04-13 10:01:39 2277 1

转载 Python笔记(八) -- Python Socket 编程 - 聊天室示例程序

本文为转载: 原文地址:http://www.cnblogs.com/hazir/p/python_chat_room.html聊天室程序需求 我们要实现的是简单的聊天室的例子,就是允许多个人同时一起聊天,每个人发送的消息所有人都能接收到,类似于 QQ 群的功能,而不是点对点的 QQ 好友之间的聊天。如下图: 图来自:http://www.ibm.com/developerworks/li

2015-04-10 17:54:33 1183

转载 Python笔记(七) -- Python Socket 网络编程

本文为转载: 原文地址:http://www.cnblogs.com/hazir/p/python_socket_programming.html#topPython Socket 网络编程 Socket 是进程间通信的一种方式,它与其他进程间通信的一个主要不同是:它能实现不同主机间的进程间通信,我们网络上各种各样的服务大多都是基于 Socket 来完成通信的,例如我们每天浏览网页、QQ 聊天、

2015-04-10 17:51:02 689

原创 Git学习总结

看了廖雪峰大大的博客,学习了git的使用,收益很多。 由于公司不能连外网,因此后面跟远程仓库的交互不能实践。本文主要是把一些命令给总结整理了下:初始化一个Git仓库 git init添加文件到Git仓库,分两步: git add “filename” //添加文件,可反复多次使用,添加多个文件 git commit -m “description” //提交查看仓库状态 git sta

2015-04-08 17:43:59 490

转载 Python笔记(六) -- Python使用SMTP发送邮件

先附上代码:# -*- coding: utf-8 -*-from email import encodersfrom email.header import Headerfrom email.mime.text import MIMETextfrom email.utils import parseaddr, formataddrimport smtplibdef _format_addr

2015-04-08 15:15:24 1038

转载 Python笔记(五) -- Python线程池

目前项目中有个工作是使用python定时处理数据库中的任务,之前是每个任务都起一个线程进行处理,随着任务数的增多,起的线程也越来越多,最终出现内存溢出情况。于是在网上查到了线程池的使用,转载代码如下:#Python的线程池实现import Queueimport threadingimport sysimport timeimport urllibimport Log#替我们工作的线程池中

2015-04-08 10:00:20 682

数据库还原与备份教程

描述数据库知识中的还原于备份知识,表与视图的导入与导出,备份与还原全图目录。

2010-05-28

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除