<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>黄忠德的博客</title>
    <link>https://huangzhongde.cn/</link>
    <description>Recent content on 黄忠德的博客</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>zh-CN</language>
    <lastBuildDate>Sat, 27 Nov 2021 00:00:00 +0000</lastBuildDate><atom:link href="https://huangzhongde.cn/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>使用canal同步MySQL数据</title>
      <link>https://huangzhongde.cn/post/Linux/canal_basic/</link>
      <pubDate>Sat, 27 Nov 2021 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/Linux/canal_basic/</guid>
      <description>一、MySQL配置 1.1 安装 MySQL 略 1.2 修改 my.ini 配置文件 1[mysqld] 2log-bin=mysql-bin # 开启binlog 3binlog-format=ROW # 选择row模式 4server_id=1 # serverid唯一 1.3 授权 1GRANTSELECT,REPLICATIONSLAVE,REPLICATIONCLIENTON*.*TO&amp;#39;canal&amp;#39;@&amp;#39;%&amp;#39;IDENTIFIEDBY&amp;#39;canal&amp;#39;;2FLUSHPRIVILEGES;1.4 重启数据库 1service mysqld restart 二、部署 canal 2.1 安装 java 1yum -y install java 验证安装 1java -version 2openjdk version &amp;#34;1.8.0_312&amp;#34; 3OpenJDK Runtime Environment (build 1.8.0_312-b07) 4OpenJDK 64-Bit Server VM (build 25.312-b07, mixed mode) 2.2 下载 canal 1wget https://github.com/alibaba/canal/releases/download/canal-1.1.5/canal.deployer-1.1.5.tar.gz 2mkdir -p /opt/canal/deploy 3tar xf canal.deployer-1.1.5.tar.gz -C /opt/canal/deploy 2.3 配置 canal 1cd /opt/canal/deploy 2vim conf/example/instance.properties 3################################################# 4## mysql serverId , v1.0.26+ will autoGen server-id 自动生成 5# canal.instance.mysql.slaveId=0 6 7#</description>
    </item>
    
    <item>
      <title>Kubernetes开启Swap支持</title>
      <link>https://huangzhongde.cn/post/Kubernetes/Kubernetes_enable_Swap_support/</link>
      <pubDate>Sun, 26 Sep 2021 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/Kubernetes/Kubernetes_enable_Swap_support/</guid>
      <description>说明 Kubernetes-1.22 版本引入了 alpha 支持，用于在每个节点的基础上为 Kubernetes 工作负载配置交换内存使用。 在之前的版本中，Kubernetes 不支持在 Linux 上使用交换内存，因为当涉及交换时，很难保证和说明 pod 内存利用率。作为 Kubernetes 早期设计的一部分，交换支持被认为是超出范围的，如果在节点上检测到交换，kubelet 将默认</description>
    </item>
    
    <item>
      <title>Vitess 上手</title>
      <link>https://huangzhongde.cn/post/Linux/Vitess_Guide/</link>
      <pubDate>Thu, 23 Sep 2021 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/Linux/Vitess_Guide/</guid>
      <description>简介 Vitess 是用于部署、扩展和管理大型 MySQL 实例集群的数据库解决方案。 特性 扩展性 Vitess 集 MySQL 数据库的很多重要特性和 NoSQL 数据库的可扩展性于一体。其内建拆分分片功能使您能够对您的 MySQL 数据库集群无限水平扩展，同时无需为应用添加分片逻辑。 性能 Vitess 自动重写对数据库性能有损害的查询。它还使用缓存机制来调解查询，并</description>
    </item>
    
    <item>
      <title>Kubernetes 创建普通账号</title>
      <link>https://huangzhongde.cn/post/Kubernetes/Kubernetes%E5%88%9B%E5%BB%BA%E6%99%AE%E9%80%9A%E8%B4%A6%E5%8F%B7/</link>
      <pubDate>Fri, 17 Sep 2021 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/Kubernetes/Kubernetes%E5%88%9B%E5%BB%BA%E6%99%AE%E9%80%9A%E8%B4%A6%E5%8F%B7/</guid>
      <description>背景 经常有碰到这种需求： 给某个用户某一指定名称空间下的管理权限 给用户赋予集群的只读权限 &amp;hellip; 前提 准备一个 Kubernetes 机群 了解 Kubernetes 的认证授权流程 Linux 下使用 openssl 创建自签证书 一、为用户创建证书 创建证书只是实现 Kubernetes 认证用，具体拥有什么样的权限取决于 RBAC 授权。也就是 Role、ClusterRole。 1.1 创建私钥 1cd /etc/kubernetes/pki</description>
    </item>
    
    <item>
      <title>使用kubeadm升级Kubernetes集群到1.22版本</title>
      <link>https://huangzhongde.cn/post/Kubernetes/%E4%BD%BF%E7%94%A8kubeadm%E5%8D%87%E7%BA%A7k8s%E9%9B%86%E7%BE%A4%E5%88%B01.22/</link>
      <pubDate>Fri, 13 Aug 2021 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/Kubernetes/%E4%BD%BF%E7%94%A8kubeadm%E5%8D%87%E7%BA%A7k8s%E9%9B%86%E7%BE%A4%E5%88%B01.22/</guid>
      <description>查看当前版本 1kubectl get nodes -owide 1NAME STATUS ROLES AGE VERSION 2k8s-master Ready &amp;lt;none&amp;gt; 548d v1.20.8 3k8s-node1 Ready &amp;lt;none&amp;gt; 548d v1.20.8 4k8s-node2 Ready &amp;lt;none&amp;gt; 548d v1.20.8 k8s不支持跨多个版本升级，因此需要先升级到1.21 安装kubeadm-1.21.4 1yum -y install kubeadm-1.21.4 kubectl-1.21.4 kubelet-1.21.4 创建升级计划 1kubeadm upgrade plan 1.21.4 --ignore-preflight-errors=ControlPlaneNodesReady,swap 由于没有label标识master节点，需要加上--ignore-preflight-errors=C</description>
    </item>
    
    <item>
      <title>使用skywalking监控gin web服务</title>
      <link>https://huangzhongde.cn/post/Golang/%E4%BD%BF%E7%94%A8skywalking%E7%9B%91%E6%8E%A7gin_web%E6%9C%8D%E5%8A%A1/</link>
      <pubDate>Sat, 03 Jul 2021 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/Golang/%E4%BD%BF%E7%94%A8skywalking%E7%9B%91%E6%8E%A7gin_web%E6%9C%8D%E5%8A%A1/</guid>
      <description>简介 SkyWalking是一个开源的 APM 系统，包括对 Cloud Native 架构中分布式系统的监控、跟踪、诊断能力。核心功能如下。 服务、服务实例、端点指标分析 根本原因分析。在运行时分析代码 服务拓扑图分析 服务、服务实例和端点依赖分析 检测到缓慢的服务和端点 性能优化 分布式跟踪和上下文传播 数据库访问指标。检测</description>
    </item>
    
    <item>
      <title>使用gin&#43;websocket实现任务的实时日志</title>
      <link>https://huangzhongde.cn/post/Golang/%E4%BD%BF%E7%94%A8gin&#43;websocket%E5%AE%9E%E7%8E%B0%E4%BB%BB%E5%8A%A1%E7%9A%84%E5%AE%9E%E6%97%B6%E6%97%A5%E5%BF%97/</link>
      <pubDate>Fri, 02 Jul 2021 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/Golang/%E4%BD%BF%E7%94%A8gin&#43;websocket%E5%AE%9E%E7%8E%B0%E4%BB%BB%E5%8A%A1%E7%9A%84%E5%AE%9E%E6%97%B6%E6%97%A5%E5%BF%97/</guid>
      <description>背景 由于工作需要，在web端执行相关的部署操作，能够在页面实时展示部署任务的实时日志信息，使用到websocket来实现。 websocket通信特点 全双工通信协议 允许服务端主动向客户端推送数据 浏览器和服务器只需要完成一次握手，两者之间就直接可以创建持久性的连接，并进行双向数据传输</description>
    </item>
    
    <item>
      <title>使用session保存用户信息</title>
      <link>https://huangzhongde.cn/post/Golang/%E4%BD%BF%E7%94%A8session%E4%BF%9D%E5%AD%98%E7%94%A8%E6%88%B7%E4%BF%A1%E6%81%AF/</link>
      <pubDate>Thu, 01 Jul 2021 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/Golang/%E4%BD%BF%E7%94%A8session%E4%BF%9D%E5%AD%98%E7%94%A8%E6%88%B7%E4%BF%A1%E6%81%AF/</guid>
      <description>gin-contrib/session支持的存储引擎 cookie redis 安装session包 1go get github.com/gin-gonic/contrib/session 基于cookie的session 创建cookieStore并放到gin中间件中 1func cookieSession(r *gin.Engine) { 2 store := sessions.NewCookieStore([]byte(&amp;#34;secret&amp;#34;)) 3 r.Use(sessions.Sessions(&amp;#34;SESSIONID&amp;#34;, store)) 4} main.go函数调用cookieSession 1func main() { 2 r := gin.Default() 3 cookieSession(r) 4 r.GET(&amp;#34;/login&amp;#34;, func(ctx *gin.Context) { 5 user := ctx.Query(&amp;#34;user&amp;#34;) 6 if user == &amp;#34;&amp;#34; {</description>
    </item>
    
    <item>
      <title>使用casbin做基于RBAC的权限验证</title>
      <link>https://huangzhongde.cn/post/Golang/%E4%BD%BF%E7%94%A8casbin%E5%81%9A%E5%9F%BA%E4%BA%8ERBAC%E7%9A%84%E6%9D%83%E9%99%90%E9%AA%8C%E8%AF%81/</link>
      <pubDate>Wed, 30 Jun 2021 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/Golang/%E4%BD%BF%E7%94%A8casbin%E5%81%9A%E5%9F%BA%E4%BA%8ERBAC%E7%9A%84%E6%9D%83%E9%99%90%E9%AA%8C%E8%AF%81/</guid>
      <description>概述 Casbin是一个强大的、高效的开源访问控制框架，其权限管理机制支持多种访问控制模型。 Casbin可以 支持自定义请求的格式，默认的请求格式为{subject, object, action}。 具有访问控制模型model和策略policy两个核心概念。 支持RBAC中的多层角色继承，不止主体可以</description>
    </item>
    
    <item>
      <title>使用viper读取配置文件并允许使用环境变量</title>
      <link>https://huangzhongde.cn/post/Golang/%E4%BD%BF%E7%94%A8viper%E8%AF%BB%E5%8F%96%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E5%B9%B6%E5%85%81%E8%AE%B8%E4%BD%BF%E7%94%A8%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F/</link>
      <pubDate>Wed, 30 Jun 2021 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/Golang/%E4%BD%BF%E7%94%A8viper%E8%AF%BB%E5%8F%96%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E5%B9%B6%E5%85%81%E8%AE%B8%E4%BD%BF%E7%94%A8%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F/</guid>
      <description>viper简介 Viper是Go应用程序的完整配置解决方案，包括12-Factor应用程序。它旨在在应用程序中工作，并且可以处理所有类型的配置需求和格式。它支持： 设置默认值 从JSON、TOML、YAML、HCL、envfile和Java属性配置文件中读取 实时观看和重新读取配置文件（</description>
    </item>
    
    <item>
      <title>使用aws-sdk-go上传对象到s3服务器</title>
      <link>https://huangzhongde.cn/post/Golang/%E4%BD%BF%E7%94%A8aws-sdk-go%E4%B8%8A%E4%BC%A0%E5%AF%B9%E8%B1%A1%E5%88%B0s3%E6%9C%8D%E5%8A%A1%E5%99%A8/</link>
      <pubDate>Tue, 29 Jun 2021 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/Golang/%E4%BD%BF%E7%94%A8aws-sdk-go%E4%B8%8A%E4%BC%A0%E5%AF%B9%E8%B1%A1%E5%88%B0s3%E6%9C%8D%E5%8A%A1%E5%99%A8/</guid>
      <description>1.环境准备 MinIO 是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口，非常适合于存储大容量非结构化的数据，例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等，而一个对象文件可以是任意大小，从几kb到最大5T不等。 MinIO是一个非常轻量的服务,</description>
    </item>
    
    <item>
      <title>Pulsar四种订阅模式</title>
      <link>https://huangzhongde.cn/post/Linux/Pulsar_Pub_Sub_Mode/</link>
      <pubDate>Mon, 26 Apr 2021 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/Linux/Pulsar_Pub_Sub_Mode/</guid>
      <description>Pulsar四种订阅模式 订阅是命名好的配置规则，指导消息如何投递给消费者。 Pulsar 中有四种订阅模式: 独占，共享，灾备和key共享 1. 独占 Exclusive Exclusive模式为默认订阅模式。 在独占模式下，仅允许单个使用者附加到订阅。如果多个使用者使用相同的订阅来订阅主题，则会发生错误。 在下图中，仅允许</description>
    </item>
    
    <item>
      <title>Pulsar集群部署</title>
      <link>https://huangzhongde.cn/post/Linux/Pulsar_Cluster_Deploy/</link>
      <pubDate>Thu, 15 Apr 2021 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/Linux/Pulsar_Cluster_Deploy/</guid>
      <description>Pulsar集群部署 简介 Apache Pulsar 是Apache软件基金会顶级项目，是下一代云原生分布式消息流平台，集消息、存储、轻量化函数式计算为一体，采用计算与存储分离架构设计，支持多租户、持久化存储、多机房跨区域数据复制，具有强一致性、高吞吐、低延时及高可扩展性等流数据存储特性，被看作是云原生时</description>
    </item>
    
    <item>
      <title>使用Pulsar Manager管理集群</title>
      <link>https://huangzhongde.cn/post/Linux/Pulsar_Manager_Basic_Usage/</link>
      <pubDate>Thu, 15 Apr 2021 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/Linux/Pulsar_Manager_Basic_Usage/</guid>
      <description>使用Pulsar Manager管理集群 Pulsar Manager 是一个网页式可视化管理与监测工具，支持多环境下的动态配置。可用于管理和监测租户、命名空间、topic、订阅、broker、集群等。通过不同的环境来关联不同的Pulsar集群。 假设你已经部署好了Pulsar集群，关于Pulsar集群的部署可</description>
    </item>
    
    <item>
      <title>Kubernetes 高级调度</title>
      <link>https://huangzhongde.cn/post/Kubernetes/Kubernetes%E9%AB%98%E7%BA%A7%E8%B0%83%E5%BA%A6%E7%AD%96%E7%95%A5/</link>
      <pubDate>Sat, 10 Apr 2021 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/Kubernetes/Kubernetes%E9%AB%98%E7%BA%A7%E8%B0%83%E5%BA%A6%E7%AD%96%E7%95%A5/</guid>
      <description>节点亲和性调度 节点亲和性分类 节点亲和性调度主要分为硬亲和性调度 requiredDuringSchedulingIgnoredDuringExecution 和 软亲和性调度 preferredDuringSchedulingIgnoredDuringExecution 硬亲和性调度： 必须满足指定条件才调度，否则不调度 软亲和性调度： 优先考虑指定节点，实在不满足也行 节点硬亲和性调度 nginx-deploy.yaml 1apiVersion:apps/v12kind:Deployment3metadata:4name:nginx5spec:6replicas:37selector:8matchLabels:9app:nginx10template:11metadata:12labels:13app:nginx14spec:15affinity:16nodeAffinity:17requiredDuringSchedulingIgnoredDuringExecution:18nodeSelectorTerms:19- matchExpressions:20- key:kubernetes.io/hostname21operator:&amp;#34;In&amp;#34;22values:23- &amp;#34;k8s-m2&amp;#34;24containers:25- name:nginx26image:nginx:1.20.1-alpine27resources:28limits:29memory:&amp;#34;256Mi&amp;#34;30cpu:&amp;#34;250m&amp;#34;31ports:32- containerPort:8033name:http34protocol:T</description>
    </item>
    
    <item>
      <title>Kubernetes 调度策略</title>
      <link>https://huangzhongde.cn/post/Kubernetes/kubernetes_scheduler/</link>
      <pubDate>Sat, 03 Apr 2021 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/Kubernetes/kubernetes_scheduler/</guid>
      <description>今天来看一下 Kubernetes 的调度策略 备注 每个版本的默认调度策略可能不太一样，具体可以查看相应版本的代码。 一、调度策略分类 pkg/scheduler/framework/plugins/legacy_registry.go 1 // Used as the default set of predicates if Policy was specified, but predicates was nil. 2 DefaultPredicates: sets.NewString( 3 NoVolumeZoneConflictPred, 4 MaxEBSVolumeCountPred, 5 MaxGCEPDVolumeCountPred, 6 MaxAzureDiskVolumeCountPred, 7 MaxCSIVolumeCountPred, 8 MatchInterPodAffinityPred, 9 NoDiskConflictPred, 10 GeneralPred, 11 PodToleratesNodeTaintsPred, 12 CheckVolumeBindingPred, 13 CheckNodeUnschedulablePred, 14 EvenPodsSpreadPred, 15 ), 16 17 // Used as the default set of predicates if Policy was specified, but priorities was nil. 18 DefaultPriorities: map[string]int64{ 19 SelectorSpreadPriority: 1, 20 InterPodAffinityPriority: 1, 21 LeastRequestedPriority: 1, 22 BalancedResourceAllocation: 1, 23 NodePreferAvoidPodsPriority: 10000, 24 NodeAffinityPriority: 1,</description>
    </item>
    
    <item>
      <title>使用kube-prometheus快速部署监控系统</title>
      <link>https://huangzhongde.cn/post/Kubernetes/Using_kube-prometheus_deploy_monitor_system/</link>
      <pubDate>Fri, 11 Dec 2020 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/Kubernetes/Using_kube-prometheus_deploy_monitor_system/</guid>
      <description>使用kube-prometheus快速部署监控系统 简介 根据官方的描述kube-prometheus集kubernetes资源清单、Grafana仪表盘、Prometheus规则文件以及文档和脚本于一身，通过使用prometheus operator提供易于操作的端到端Kuberne</description>
    </item>
    
    <item>
      <title>Podman新手入门</title>
      <link>https://huangzhongde.cn/post/Linux/Podman_Basic_Usage/</link>
      <pubDate>Wed, 09 Dec 2020 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/Linux/Podman_Basic_Usage/</guid>
      <description>Podman新手入门 安装 安装podman centos7+可以直接使用yum进行安装 1yum -y install podman 验证安装 1podman version 2Version: 1.6.4 3RemoteAPI Version: 1 4Go Version: go1.12.12 5OS/Arch: linux/amd64 安装完成后，配置文件默认在/etc/containers下 1grep -Ev &amp;#34;^$|^#&amp;#34; registries.conf 2[registries.search] 3registries = [&amp;#39;registry.access.redhat.com&amp;#39;, &amp;#39;registry.redhat.io&amp;#39;, &amp;#39;docker.io&amp;#39;] 4[registries.insecure] 5registries = [] 6[registries.block] 7registries = [] 从配置文件可以看到默认搜索红帽和docker官方的registr</description>
    </item>
    
    <item>
      <title>MySQL InnoDB集群管理 - 使用mysqldump进行恢复和配置</title>
      <link>https://huangzhongde.cn/post/Linux/mysql_innodb_cluster_recovering_and_provisioning_with_mysqldump/</link>
      <pubDate>Fri, 18 Sep 2020 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/Linux/mysql_innodb_cluster_recovering_and_provisioning_with_mysqldump/</guid>
      <description>作为群集的管理员，除其他任务外，您应该能够通过添加（或删除）新节点来还原故障节点并扩展（或收缩）群集。 在MySQL中，如果您的数据量不太大，可以使用mysqldump客户端执行逻辑备份是一种不错的选择。它是复制原始模式对象和数据的SQL语句。 但是，对于大量数据， 需要选择诸如MyS</description>
    </item>
    
    <item>
      <title>使用velero管理Kubernetes资源</title>
      <link>https://huangzhongde.cn/post/Kubernetes/Using_velero_manage_kubernetes_resources/</link>
      <pubDate>Wed, 09 Sep 2020 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/Kubernetes/Using_velero_manage_kubernetes_resources/</guid>
      <description>使用velero管理Kubernetes资源 背景 经常在开发测试环境碰到这样一种情况，yaml文件被修改了，或者service被人删除了。这个时候需要第一时间恢复业务，保障其开发测试的可用性，在生产环境中，备份显得尤为重要，任何一个误操作都有可能导致业务受到影响。 一、简介 是 VMWare 开源的</description>
    </item>
    
    <item>
      <title>使用Rook在Kubernetes上部署Ceph集群</title>
      <link>https://huangzhongde.cn/post/Kubernetes/Deploy_A_Ceph_Cluster_On_Kubernetes_With_Rook/</link>
      <pubDate>Tue, 25 Aug 2020 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/Kubernetes/Deploy_A_Ceph_Cluster_On_Kubernetes_With_Rook/</guid>
      <description>一、简介 在本文中，我们将使用Rook在Kubernetes集群中设置Ceph存储。然后使用Ceph的块存储来持久存储MongoDB数据库的数据。 完成后，您将了解什么是Rook以及如何使用它来部署Ceph。您还将了解如何使用Rook在Kubernetes中部署其他一些存储后端。 二、</description>
    </item>
    
    <item>
      <title>使用RKE部署Kubernetes集群</title>
      <link>https://huangzhongde.cn/post/Kubernetes/Using_RKE_Deploy_Kubernetes_Cluster/</link>
      <pubDate>Sat, 22 Aug 2020 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/Kubernetes/Using_RKE_Deploy_Kubernetes_Cluster/</guid>
      <description>使用RKE部署Kubernetes集群 一、简介 Rancher Kubernetes Engine（RKE）是一个用Golang编写的Kubernetes安装程序，相对于其它的工具来说，更加简单易用和上手。 二、主机规划 主机名称 系统镜像 IP 配置 角色 rancher-master ubuntu18.04 192.168.0.26 4C8G50G controlplane,etcd rancher-node1 ubuntu18.04 192.168.0.27 8C16G50G node rancher-node2 ubuntu18.04 192.168.0.28 8C16G50G node 三、环境准备 2.1 使用国内源 1sed -i &amp;#39;s/nova.clouds.archive.ubuntu.com/mirrors.ustc.edu.cn/&amp;#39; /etc/apt/sources.list 2apt update 2.2 配置</description>
    </item>
    
    <item>
      <title>使用ceph-ansible部署Ceph集群</title>
      <link>https://huangzhongde.cn/post/Linux/Deploy_ceph_nautilus_with_ceph_ansible/</link>
      <pubDate>Sat, 15 Aug 2020 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/Linux/Deploy_ceph_nautilus_with_ceph_ansible/</guid>
      <description>使用ceph-ansible部署Ceph集群 一、主机规划 主机 系统 IP 配置 ceph-node1 centos7.7 10.10.10.50 4C8G50G+100G ceph-node2 centos7.7 10.10.10.51 4C8G50G+100G ceph-node3 centos7.7 10.10.10.52 4C8G50G+100G 二、安装python3 1# 安装epel源 2yum -y install epel-release 3 4# 使用国内epel源 5sed -e &amp;#39;s!^metalink=!#metalink=!g&amp;#39; \ 6 -e &amp;#39;s!^#baseurl=!baseurl=!g&amp;#39; \ 7 -e &amp;#39;s!//download\.fedoraproject\.org/pub!//mirrors.tuna.tsinghua.edu.cn!g&amp;#39; \ 8 -e &amp;#39;s!http://mirrors\.tuna!https://mirrors.tuna!g&amp;#39; \ 9 -i /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel-testing.repo 10 11yum -y install python36 三、下载代码 stable-3.0分支支持的Ceph版本为jewel和</description>
    </item>
    
    <item>
      <title>备份Kubernetes资源清单文件脚本</title>
      <link>https://huangzhongde.cn/post/Kubernetes/%E5%A4%87%E4%BB%BDk8s%E8%B5%84%E6%BA%90%E6%B8%85%E5%8D%95%E6%96%87%E4%BB%B6%E8%84%9A%E6%9C%AC/</link>
      <pubDate>Sat, 11 Jul 2020 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/Kubernetes/%E5%A4%87%E4%BB%BDk8s%E8%B5%84%E6%BA%90%E6%B8%85%E5%8D%95%E6%96%87%E4%BB%B6%E8%84%9A%E6%9C%AC/</guid>
      <description>脚本文件 dump_yaml_by_namespace.sh 1#!/bin/bash 2 3# 作用： 4# 备份指定namespace下的kubernetes资源清单文件 5 6# ===== 变量定义 ===== 7namespace=$1 8manifests=${2:-manifests} 9today=$(date +%Y%m%d) 10 11# ===== 函数定义部分 ===== 12# 红色终端显示 13function red() { 14 local body=$1 15 echo -e &amp;#34;\033[31m${body}\033[0m&amp;#34; 16} 17 18# 绿色终端显示 19function green() { 20 local body=$1 21 echo -e &amp;#34;\033[32m${body}\033[0m&amp;#34; 22} 23 24# 导出yaml格式的文件 25function dump_to_yaml() { 26 local type=$1 27 green &amp;#34;get ${namespace}${type}.&amp;#34; 28 for i in $(kubectl get ${type} -n ${namespace} 2&amp;gt;/dev/null | awk &amp;#39;{if(NR!=1) print $1}&amp;#39;);</description>
    </item>
    
    <item>
      <title>使用 Ceph RBD 作为K8s后端动态存储</title>
      <link>https://huangzhongde.cn/post/Linux/Ceph_RBD_for_K8s_StorageClass/</link>
      <pubDate>Sat, 27 Jun 2020 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/Linux/Ceph_RBD_for_K8s_StorageClass/</guid>
      <description>使用 Ceph RBD 作为K8s后端动态存储 一、Kubernetes信息 主机 系统 IP Kubernetes版本 master1 CentOS7.8.2003 192.168.0.14 v1.16.6 master2 CentOS7.8.2003 192.168.0.15 v1.16.6 master3 CentOS7.8.2003 192.168.0.16 v1.16.6 node1 CentOS7.8.2003 192.168.0.18 v1.16.6 node2 CentOS7.8.2003 192.168.0.19 v1.16.6 node3 CentOS7.8.2003 192.168.0.20 v1.16.6 二、创建存储池 使用默认的rbd池也是可以的，但是不推荐使用 在ceph管理或监控节点上创建一个新的动态卷： 1# 创建存储池 2ceph osd pool create kube 128 128 3pool &amp;#39;kube&amp;#39; created 4 5#</description>
    </item>
    
    <item>
      <title>Ceph-12.2.13(luminous)安装</title>
      <link>https://huangzhongde.cn/post/Linux/Ceph_luminous_deploy/</link>
      <pubDate>Sat, 20 Jun 2020 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/Linux/Ceph_luminous_deploy/</guid>
      <description>Ceph-12.2.13(luminous)安装 一、主机规划 主机名称 系统 IP 配置 ceph-node1 CentOS7.8.2003 10.10.10.47 8C16G50G+200G ceph-node2 CentOS7.8.2003 10.10.10.48 8C16G50G+200G ceph-node3 CentOS7.8.2003 10.10.10.49 8C16G50G+200G 磁盘规划 50G系统盘，200G磁盘为OSD 二、环境准备 2.1 关闭防火墙 在所有节点执行 1# 禁用selinux 2setenforce 0 3sed -i s&amp;#39;/SELINUX=enforcing/SELINUX=disabled&amp;#39;/g /etc/selinux/config 4 5# 关闭防火墙 6systemctl disable --now firewalld 2.2 修改hosts 1cat &amp;gt; /etc/hosts &amp;lt;&amp;lt;EOF 2127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 3::1 localhost localhost.localdomain localhost6 localhost6.localdomain6</description>
    </item>
    
    <item>
      <title>Redis高可用之redis-cluster集群</title>
      <link>https://huangzhongde.cn/post/Linux/Redis_HA_cluster_mode/</link>
      <pubDate>Sat, 13 Jun 2020 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/Linux/Redis_HA_cluster_mode/</guid>
      <description>简介 Redis-Cluster采用无中心结构，每个节点保存数据和整个集群状态,每个节点都和其他所有节点连接。 其结构特点： 所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽。 节点的fail是通过集群中超过半数的节点检测失效时才生效。 客户端与</description>
    </item>
    
    <item>
      <title>Redis高可用之哨兵模式</title>
      <link>https://huangzhongde.cn/post/Linux/Redis_HA_sentinel_mode/</link>
      <pubDate>Wed, 10 Jun 2020 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/Linux/Redis_HA_sentinel_mode/</guid>
      <description>Redis主从复制 概念 主从复制模型中，有多个redis节点。 其中，有且仅有一个为主节点Master。从节点Slave可以有多个。 只要网络连接正常，Master会一直将自己的数据更新同步给Slaves，保持主从同步。 特点 主节点Master可读、可写. 从节点Slave只读。（read</description>
    </item>
    
    <item>
      <title>使用HAProxy&#43;Pacemaker部署RabbitMQ高可用集群</title>
      <link>https://huangzhongde.cn/post/Linux/RabbitMQ_HA_with_haproxy_and_pacemaker/</link>
      <pubDate>Sun, 07 Jun 2020 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/Linux/RabbitMQ_HA_with_haproxy_and_pacemaker/</guid>
      <description>环境准备 节点 IP VIP 角色 rabbit1 172.16.10.11 RabbitMQ rabbit2 172.16.10.12 RabbitMQ rabbit3 172.16.10.13 RabbitMQ lvs1 172.16.10.14 172.16.10.10 HAProxy,Pacemaker lvs2 172.16.10.15 HAProxy,Pacemaker 安装Rabbit MQ 简介 集群中的节点有两种，一种是内存节点，一种是磁盘节点； 内存节点由于没有磁盘读写，性能比磁盘节点要好，磁盘节点可以将状态持久化到磁盘，可用性比内存节点要好，需要权衡考虑。 配置hosts 1cat &amp;gt; /etc/hosts &amp;lt;&amp;lt;EOF 2127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 3::1 localhost localhost.localdomain localhost6</description>
    </item>
    
    <item>
      <title>Kubernetes 证书过期处理</title>
      <link>https://huangzhongde.cn/post/Kubernetes/Kubernetes%E8%AF%81%E4%B9%A6%E8%BF%87%E6%9C%9F%E5%A4%84%E7%90%86/</link>
      <pubDate>Mon, 01 Jun 2020 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/Kubernetes/Kubernetes%E8%AF%81%E4%B9%A6%E8%BF%87%E6%9C%9F%E5%A4%84%E7%90%86/</guid>
      <description>背景 使用 kubeadm 安装的证书 除了 CA 证书是10年之外，其他证书的默认有效期为1年，当使用 kubeadm upgrade 进行升级时，证书会重新颁发。但有些场景比如内网环境，又没有升级，也没有使用 kubeadm alpha certs renew 重新续签导致。 错误信息 kubectl 执行报错 1kubectl get pods -o wide 2The connection to the server &amp;lt;apiserver_advertise_ip&amp;gt;:6443 was refused - did you specify the right host or port? kubelet 状态 1systemctl status kubelet 2● kubelet.service - kubelet: The Kubernetes Node Agent 3 Loaded: loaded (/usr/lib/systemd/system/kubelet.service; enabled;</description>
    </item>
    
    <item>
      <title>MariaDB HA之Galera集群</title>
      <link>https://huangzhongde.cn/post/Linux/MariaDB_HA_Galera_with_haproxy_and_pacemaker/</link>
      <pubDate>Sun, 31 May 2020 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/Linux/MariaDB_HA_Galera_with_haproxy_and_pacemaker/</guid>
      <description>MariaDB HA之Galera集群 功能简介 特性 真正的多主架构，任何节点都可以进行读写 同步复制，各节点间无延迟且节点宕机不会导致数据丢失 紧密耦合，所有节点均保持相同状态，节点间无不同数据 无需主从切换操作或使用VIP 热Standby，在Failover过程中无停机时间（由于不需要Failove</description>
    </item>
    
    <item>
      <title>MySQL高可用集群之双主多从</title>
      <link>https://huangzhongde.cn/post/Linux/MySQL_High_Avaliablity_Cluster/</link>
      <pubDate>Thu, 23 Apr 2020 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/Linux/MySQL_High_Avaliablity_Cluster/</guid>
      <description>简介 通常MySQL主从复制主要用来解决读写分离，分担服务器压力。MySQL互为主备实现服务的高可用；这里同时基于高可用和负载均衡。 集群架构 环境准备 主机名/角色 VIP IP地址 操作系统 MySQL版本 Node0/master1 172.16.10.100 172.16.10.10 CentOS8.1.1911 8.0.17 Node1/master2 172.16.10.11 CentOS8.1.1911 8.0.17 Node2/slave1 172.16.10.12 CentOS8.1.1911 8.0.17 注意 MySQL版本保持一致，不然容易出现不可预知的错误。 安装My</description>
    </item>
    
    <item>
      <title>蓝鲸paas平台bk-paas安装部署</title>
      <link>https://huangzhongde.cn/post/Linux/devops_bk_Paas_deploy/</link>
      <pubDate>Wed, 15 Apr 2020 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/Linux/devops_bk_Paas_deploy/</guid>
      <description>简介 蓝鲸智云PaaS平台是一个开放式的开发平台，让开发者可以方便快捷地创建、开发、部署和管理SaaS应用。 github仓库: https://github.com/Tencent/bk-Paas 结构 源码包含 Paas 包含4大服务，均基于python2.7+django1.8开发 login 蓝鲸统一登录服务，支持用户及角色管理，支持对接企业内部登录体系 paas 蓝鲸开发者中</description>
    </item>
    
    <item>
      <title>nginx&#43;etcd实现服务配置动态更新</title>
      <link>https://huangzhongde.cn/post/Linux/nginx_etcd_service_discovery/</link>
      <pubDate>Thu, 09 Apr 2020 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/Linux/nginx_etcd_service_discovery/</guid>
      <description>Nginx是目前使用量最大的web服务器和负载均衡服务器 实现的方案有： nginx+consul nginx+etcd 这里主要介绍nginx+etcd，具体方法都差不多 下面介绍一下怎么实现的 安装并运行etcd 安装etcd 目前最新版本为3.4.7 1wget https://github.com/etcd-io/etcd/releases/download/v3.4.7/etcd-v3.4.7-linux-amd64.tar.gz 2tar xf etcd-v3.4.7-linux-amd64.tar.gz -C /usr/bin \ 3 --strip-components 1 etcd-v3.4.7-linux-amd64/etcd{,ctl} 创建etcd用户和工作目录 1groupadd -g 379 etcd 2useradd -u 379 -g 379 etcd -s /sbin/nologin -d /etc/etcd 创</description>
    </item>
    
    <item>
      <title>使用Nessus扫描系统漏洞</title>
      <link>https://huangzhongde.cn/post/Linux/Nessus_Vulnerability_Scan/</link>
      <pubDate>Thu, 02 Apr 2020 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/Linux/Nessus_Vulnerability_Scan/</guid>
      <description>简介 Nessus是目前使用人数最多的系统漏洞扫描与分析软件，是开源软件OpenVas的增强版本。使用它可以发现系统中存在的问题，并及时修复，加强对服务器的保护。 安装 下载地址：https://www.tenable.com/downloads/nessus 选择合适的平台软件进行下载</description>
    </item>
    
    <item>
      <title>Go爬虫开发</title>
      <link>https://huangzhongde.cn/post/Golang/go_spider/</link>
      <pubDate>Mon, 30 Mar 2020 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/Golang/go_spider/</guid>
      <description>引入 在具体讲解爬虫知识之前，我们首先简单回顾下前面HTTP编程。一种是我们自己编写一个服务器，让浏览器请求我们的服务器。接受请求后分析协议，回发相应数据给浏览器。 另一种，我们可以编写程序充当客户端或者说是用程序模拟浏览器行为，向互联网上现有的服务器发送请求，获取服务器上的数据。例</description>
    </item>
    
    <item>
      <title>使用Prometheus监控常用中间件</title>
      <link>https://huangzhongde.cn/post/Linux/prometheus_monitoring_middlewares/</link>
      <pubDate>Mon, 30 Mar 2020 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/Linux/prometheus_monitoring_middlewares/</guid>
      <description>常用中间件 中间件指系统软件和应用软件之间的连接软件，无论是在分布式系统还是在单体系统中，中间件都发挥着重要的作用。 常用的中间件主要有以下几类： 数据库中间件： 如PostgreSQL 消息中间件：如Kafka 缓存中间件：如Redis Web服务中间件： 如nginx 安装Prometheus</description>
    </item>
    
    <item>
      <title>使用Prometheus监控MySQL</title>
      <link>https://huangzhongde.cn/post/Linux/2020-03-27_%E4%BD%BF%E7%94%A8prometheus%E7%9B%91%E6%8E%A7mysql/</link>
      <pubDate>Fri, 27 Mar 2020 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/Linux/2020-03-27_%E4%BD%BF%E7%94%A8prometheus%E7%9B%91%E6%8E%A7mysql/</guid>
      <description>prometheus出了前面将了能监控系统的性能指标外，还能监控具体的应用程序，只需要按照prometheus约定的格式收集指标即可。这里介绍一下监控mysql应用。 安装Mysqld_Exporter 其中mysqld_exporter是有官方提供，下载地址： Mysql_exporter 1wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.12.1/mysqld_exporter-0.12.1.linux-amd64.tar.gz 这些应用程序都是</description>
    </item>
    
    <item>
      <title>Go-micro学习笔记（2）gRPC使用</title>
      <link>https://huangzhongde.cn/post/Golang/go-micro_note2/</link>
      <pubDate>Sun, 22 Mar 2020 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/Golang/go-micro_note2/</guid>
      <description>使用gRPC构建一个简易的商品服务注册到etcd中 创建models/protos目录，新建商品模型 1syntax = &amp;#34;proto3&amp;#34;;2package models;34// 商品模型 5message ProdModel{6 // @inject_tag: json:&amp;#34;pid&amp;#34; 7 int32 ProdId = 1;8 // @inject_tag: json:&amp;#34;pname&amp;#34; 9 string ProdName = 2;10}使用protoc创建服务 1syntax = &amp;#34;proto3&amp;#34;;2package models;34import &amp;#34;models.proto&amp;#34;;56message ProdRequest{7 int32 size = 1;8}910message ProdListResponse{11 repeated ProdModel data = 1;12}1314service ProdService{15 rpc GetProdList(ProdRequest) returns (ProdListResponse);16}使用proto</description>
    </item>
    
    <item>
      <title>Go-micro学习笔记（1）http调用</title>
      <link>https://huangzhongde.cn/post/Golang/go-micro_note1/</link>
      <pubDate>Fri, 20 Mar 2020 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/Golang/go-micro_note1/</guid>
      <description>1. go-micro体验 1package main 2 3import ( 4 &amp;#34;fmt&amp;#34; 5 &amp;#34;github.com/micro/go-micro/web&amp;#34; 6 &amp;#34;net/http&amp;#34; 7) 8 9func main(){ 10 service := web.NewService(web.Address(&amp;#34;127.0.0.1:8000&amp;#34;)) 11 // 使用http原生的handlefunc 12 service.HandleFunc(&amp;#34;/&amp;#34;, func(w http.ResponseWriter, r *http.Request) { 13 w.Write([]byte(&amp;#34;hello world&amp;#34;)) 14 }) 15 err := service.Run() 16 if err != nil { 17 fmt.Println(err) 18 } 19} 测试结果 1curl http://127.0.0.1:8000 2hello world 2. 使用web框架gin 1package main 2 3import ( 4 &amp;#34;github.com/gin-gonic/gin&amp;#34; 5 &amp;#34;github.com/micro/go-micro/web&amp;#34; 6 &amp;#34;net/http&amp;#34; 7) 8 9func main() { 10 r := gin.Default() 11 r.Handle(&amp;#34;GET&amp;#34;, &amp;#34;/&amp;#34;, func(c *gin.Context) { 12 c.JSON(http.StatusOK, gin.H{ 13 &amp;#34;code&amp;#34;: http.StatusOK, 14 }) 15 }) 16 service := web.NewService( 17 web.Name(&amp;#34;demo_service&amp;#34;), 18</description>
    </item>
    
    <item>
      <title>Go操作Gitlab</title>
      <link>https://huangzhongde.cn/post/Golang/go-gitlab/</link>
      <pubDate>Thu, 19 Mar 2020 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/Golang/go-gitlab/</guid>
      <description>Go操作Gitlab 环境准备 需要有一个Gitlab环境，可以使用下面的命令快速运行一个Gitlab 1 sudo docker run --detach \ 2 --hostname gitlab.example.com \ 3 --publish 443:443 --publish 80:80 --publish 22:22 \ 4 --name gitlab \ 5 --restart always \ 6 --volume /srv/gitlab/config:/etc/gitlab \ 7 --volume /srv/gitlab/logs:/var/log/gitlab \ 8 --volume /srv/gitlab/data:/var/opt/gitlab \ 9 gitlab/gitlab-ce:latest go-gitlab简介 go-gitlab几乎包含了gitlab上全部的api功能，这也是我们选择它的其</description>
    </item>
    
    <item>
      <title>Go操作Jenkins</title>
      <link>https://huangzhongde.cn/post/Golang/gojenkins/</link>
      <pubDate>Wed, 18 Mar 2020 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/Golang/gojenkins/</guid>
      <description>Go操作Jenkins Jenkins是最受欢迎的开源持续集成系统，在我们的工作当中，经常用到。这里介绍Go语言的第三方库gojenkins来调用Jenkins API实现对Jenkins的相关操作。 环境准备 需要有一个Jenkins环境，可以使用下面的命令快速运行一个Jenkins 1docker</description>
    </item>
    
    <item>
      <title>使用Beego开发个人博客系统hblog(1)登录</title>
      <link>https://huangzhongde.cn/post/Golang/hblog_1/</link>
      <pubDate>Tue, 17 Mar 2020 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/Golang/hblog_1/</guid>
      <description>关于beego的更多介绍可以看我前面的文章Go语言Beego框架介绍]或是查看官网。 安装 1go get -u github.com/astaxie/beego 2go get -u gtihub.com/beego/bee 创建项目 1bee new github.com/hzde0128/hblog 导入静态页面 这里使用的X-admin2.2，官网下载http://x.xuebingsi.com/2.2版本，将文件解压，html文件放入views目录，修改文件</description>
    </item>
    
    <item>
      <title>CentOS8下FastdDFS安装和使用</title>
      <link>https://huangzhongde.cn/post/CentOS8_Fastdfs_introduce/</link>
      <pubDate>Mon, 16 Mar 2020 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/CentOS8_Fastdfs_introduce/</guid>
      <description>CentOS8下FastdDFS安装 Fastdfs简介 FastDFS 是一个开源的高性能分布式文件系统（DFS）。 它的主要功能包括：文件存储，文件同步和文件访问，以及高容量和负载平衡。主要解决了海量数据存储问题，特别适合以中小文件（建议范围：4KB &amp;lt; file_size &amp;lt;500MB）为载体的在线服务。 FastDFS 系</description>
    </item>
    
    <item>
      <title>Go语言Beego框架介绍</title>
      <link>https://huangzhongde.cn/post/Golang/Go_Beego/</link>
      <pubDate>Mon, 16 Mar 2020 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/Golang/Go_Beego/</guid>
      <description>一个使用 Go 的思维来帮助您构建并开发 Go 应用程序的开源框架 Beego简介 beego 是一个快速开发 Go 应用的 HTTP 框架，他可以用来快速开发 API、Web 及后端服务等各种应用，是一个 RESTful 的框架，主要设计灵感来源于 tornado、sinatra 和 flask 这三个框架，但是结合了 Go 本身的一些特性（interface</description>
    </item>
    
    <item>
      <title>微服务系列（6）RESTful介绍</title>
      <link>https://huangzhongde.cn/post/2020-03-16-Microservice_RESTful/</link>
      <pubDate>Mon, 16 Mar 2020 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/2020-03-16-Microservice_RESTful/</guid>
      <description>RESTful，是目前最为流行的一种互联网软件架构。因为它结构清晰、符合标准、易于理解、扩展方便，所以正得到越来越多网站的采用。 什么是REST REST(REpresentational State Transfer)这个概念，首次出现是在 2000年Roy Thomas Fielding（他是HTTP规范的主要编写者之一）的博士论文中，它指的是一</description>
    </item>
    
    <item>
      <title>微服务系列（4）Consul介绍</title>
      <link>https://huangzhongde.cn/post/2020-03-15-Microservice_Consul/</link>
      <pubDate>Sun, 15 Mar 2020 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/2020-03-15-Microservice_Consul/</guid>
      <description>Consul介绍 Consul是HashiCorp公司推出的开源工具，用于实现分布式系统的服务发现与配置。 Consul是分布式的、高可用 的、可横向扩展的。它具备以下特性 : 服务发现：consul通过DNS或者HTTP接口使服务注册和服务发现变的很容易，一些外部服务，例如saas 提供的</description>
    </item>
    
    <item>
      <title>微服务系列（5）Micro</title>
      <link>https://huangzhongde.cn/post/2020-03-15-Microservice_Micro/</link>
      <pubDate>Sun, 15 Mar 2020 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/2020-03-15-Microservice_Micro/</guid>
      <description>微服务系列（5）Micro 1. 准备etcd 这边使用etcd作为服务发现工具，你也可以使用consul或者其它服务发现工具 下载etcd 直接下载二进制包运行，下载地址：https://github.com/etcd-io/etcd/releases 1wget https://github.com/etcd-io/etcd/releases/download/v3.4.4/etcd-v3.4.4-linux-amd64.tar.gz 2tar xf etcd-v3.4.4-linux-amd64.tar.gz -C /usr/bin/ --strip-components 1 etcd-v3.4.4-linux-amd64/{etcd,etcdctl} 验证安装 1etcd --version 运行e</description>
    </item>
    
    <item>
      <title>微服务系列（1）微服务介绍</title>
      <link>https://huangzhongde.cn/post/2020-03-14-Microservice_introduce/</link>
      <pubDate>Sat, 14 Mar 2020 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/2020-03-14-Microservice_introduce/</guid>
      <description>什么是微服务 微服务是一种软件架构模式，用于将大型整体应用程序分解为更小的可管理独立服务，这些独立服务通过跨语言的协议进行通信，每个服务都专注于做好一件事情。 微服务的概念并不新鲜，这是对面向服务的体系结构的重新构想，而是采用了一种更加全面的方式与unix进程和管道对齐的方法。 微服务</description>
    </item>
    
    <item>
      <title>微服务系列（2）Protobuf介绍</title>
      <link>https://huangzhongde.cn/post/2020-03-14-Microservice_Protobuf/</link>
      <pubDate>Sat, 14 Mar 2020 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/2020-03-14-Microservice_Protobuf/</guid>
      <description>Protobuf是Google旗下的一款与平台无关，语言无关，可扩展的序列化结构数据格式。所以很适合做数据存储和作为不同应用，不同语言之间互相通信的数据交换格式，只要实现相同的协议格式即同一proto文件被编译成不同的语言版本，加入到各自的工程中去。这样不同语言就可以解析其他语言</description>
    </item>
    
    <item>
      <title>微服务系列（3）gRPC介绍</title>
      <link>https://huangzhongde.cn/post/2020-03-14-Microservice_gRPC/</link>
      <pubDate>Sat, 14 Mar 2020 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/2020-03-14-Microservice_gRPC/</guid>
      <description>gRPC是一个高性能、开源和通用的RPC框架，面向移动和HTTP/2设计。gRPC基于HTTP/2标准设计，带来诸如双向流、流控、头部压缩、单TCP连接上的多路复用请求等待。这些特性使得其在移动设备上表现更好，更省电和节省空间占用。 RPC RPC（Remote Procedure Call Protocol） &amp;ndash; 远</description>
    </item>
    
    <item>
      <title>Go操作Redis</title>
      <link>https://huangzhongde.cn/post/Golang/Go_redis/</link>
      <pubDate>Fri, 13 Mar 2020 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/Golang/Go_redis/</guid>
      <description>Go操作Redis Redis简介 Redis是一个开放源代码（BSD许可）的内存中数据结构存储，用作数据库，缓存和消息代理。它支持数据结构，例如字符串，哈希，列表，集合，带范围查询的排序集合，位图，超日志，带有半径查询和流的地理空间索引。Redis具有内置的复制，Lua脚本，LRU</description>
    </item>
    
    <item>
      <title>GORM（2）-CURD操作</title>
      <link>https://huangzhongde.cn/post/Golang/GORM_2/</link>
      <pubDate>Thu, 12 Mar 2020 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/Golang/GORM_2/</guid>
      <description>CURD操作 一、创建 1.1 创建记录 1user := User{Name: &amp;#34;Jinzhu&amp;#34;, Age: 18, Birthday: time.Now()} 2 3db.NewRecord(user) // =&amp;gt; 主键为空返回`true` 4 5db.Create(&amp;amp;user) 6 7db.NewRecord(user) // =&amp;gt; 创建`user`后返回`false` 1.2 默认值 你可以通过 tag 定义字段的默认值，比如： 1type Animal struct { 2 ID int64 3 Name string `gorm:&amp;#34;default:&amp;#39;galeone&amp;#39;&amp;#34;` 4 Age int64 5} 生成的 SQL 语句会排除没有值或值为 零值 的字段。 将记录插入到数据库后，Gorm会从数据</description>
    </item>
    
    <item>
      <title>GORM（1）-入门指南</title>
      <link>https://huangzhongde.cn/post/Golang/GORM_1/</link>
      <pubDate>Wed, 11 Mar 2020 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/Golang/GORM_1/</guid>
      <description>GORM（1）-入门指南 一、概述 1.1 特性 全功能ORM（几乎） 关联（包含一个，包含多个，属于，多对多，多种包含） Callbacks（创建/保存/更新/删除/查找之前/之后） 预加载（急加载） 事务 复合主键 SQL Builder 自动迁移 日志 可扩展，编写基于GORM回调的插件 每个功能都有测试 开发人员友好 1.2 安装</description>
    </item>
    
    <item>
      <title>Go微服务框架go-micro学习(1)基本使用</title>
      <link>https://huangzhongde.cn/post/Golang/go_microservice_framework_go-micro_1/</link>
      <pubDate>Tue, 10 Mar 2020 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/Golang/go_microservice_framework_go-micro_1/</guid>
      <description>Go微服务框架go-micro学习（1）基本使用 1. 简介 Go Micro提供了分布式系统开发的核心要求，包括RPC和事件驱动的通信。go-micro哲学是可插拔体系结构的默认设置。我们提供了默认设置，可帮助您快速入门，但所有内容都可以轻松换出。 2. 特性 Go Micro提取了分布式系统的详细信</description>
    </item>
    
    <item>
      <title>Go语言gRPC快速入门</title>
      <link>https://huangzhongde.cn/post/Golang/2020-03-10_gRPC_go/</link>
      <pubDate>Tue, 10 Mar 2020 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/Golang/2020-03-10_gRPC_go/</guid>
      <description>go语言gRPC快速入门 先决条件 需要golang1.6+版本 gRPC安装 使用以下命令安装gRPC。 1go get -u google.golang.org/grpc Protocol Buffers v3 安装用于生成gRPC服务代码的协议编译器。最简单的方法是protoc-&amp;lt;version&amp;gt;-&amp;lt;platform&amp;gt;.zip从此处下载适用于您的平台的</description>
    </item>
    
    <item>
      <title>Go运维开发之日志收集（9）logTransfer支持多个Topic</title>
      <link>https://huangzhongde.cn/post/2020-03-10-golang_devops_logAgent_9_kafka_consumer_group_multi_topics/</link>
      <pubDate>Tue, 10 Mar 2020 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/2020-03-10-golang_devops_logAgent_9_kafka_consumer_group_multi_topics/</guid>
      <description>Go运维开发之日志收集（9）logTransfer支持多个Topic Go运维开发之日志收集（1）收集应用程序日志到kafka中 Go运维开发之日志收集（2）从etcd中获取配置信息 Go运维开发之日志收集（3）根据etcd配置项创建多个tailTask Go运维开发之日志收集（4）监视</description>
    </item>
    
    <item>
      <title>软件开发规范之语义化版本</title>
      <link>https://huangzhongde.cn/post/2020-03-10-develop_semantic_versioning/</link>
      <pubDate>Tue, 10 Mar 2020 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/2020-03-10-develop_semantic_versioning/</guid>
      <description>语义化版本 2.0.0 摘要 版本格式：主版本号.次版本号.修订号，版本号递增规则如下： 主版本号：当你做了不兼容的 API 修改， 次版本号：当你做了向下兼容的功能性新增， 修订号：当你做了向下兼容的问题修正。 先行版本号及版本编译元数据可以加到“主版本号.次版本号.修订号”的后面，作为延伸。 简介 在软件管理</description>
    </item>
    
    <item>
      <title>Go Web框架Gin学习</title>
      <link>https://huangzhongde.cn/post/Golang/Gin_study_guide/</link>
      <pubDate>Mon, 09 Mar 2020 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/Golang/Gin_study_guide/</guid>
      <description>Go Web框架Gin学习 一、Gin入门 1. 介绍 Gin号称是运行速度最快，特性最全的Goweb框架。 Gin是一个golang的微框架，封装比较优雅，API友好，源码注释比较明确，具有快速灵活，容错方便等特点 对于golang而言，web框架的依赖要远比Python，Java之类的要小。自</description>
    </item>
    
    <item>
      <title>Go运维开发之日志收集（8）将应用程序日志写入到文件中</title>
      <link>https://huangzhongde.cn/post/2020-03-09-golang_devops_logAgent_8_with_logrus/</link>
      <pubDate>Mon, 09 Mar 2020 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/2020-03-09-golang_devops_logAgent_8_with_logrus/</guid>
      <description>Go运维开发之日志收集（8）将应用程序日志写入到文件中 Go运维开发之日志收集（1）收集应用程序日志到kafka中 Go运维开发之日志收集（2）从etcd中获取配置信息 Go运维开发之日志收集（3）根据etcd配置项创建多个tailTask Go运维开发之日志收集（4）监视etcd配置项</description>
    </item>
    
    <item>
      <title>Go语言第三方日志库logrus使用</title>
      <link>https://huangzhongde.cn/post/Golang/2020-03-07_golang_logrus_usage/</link>
      <pubDate>Sat, 07 Mar 2020 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/Golang/2020-03-07_golang_logrus_usage/</guid>
      <description>Go语言第三方日志库logrus使用 简介 结构化、插件化的Go日志库，与标准库log的API完全兼容。目前处于维护模式，不再开发新的特性，后期专注于安全和性能提升这块。 安装 1go get github.com/sirupsen/logrus 基本使用 1package main 2 3import ( 4 log &amp;#34;github.com/sirupsen/logrus&amp;#34; 5) 6 7func main() { 8 log.WithFields(log.Fields{ 9 &amp;#34;animal&amp;#34;: &amp;#34;walrus&amp;#34;, 10 }).Info(&amp;#34;A walrus appears&amp;#34;) 11} 输出结果 1INFO[0000] A walrus appears animal=walrus 进阶用法 1package main 2 3import ( 4 &amp;#34;os&amp;#34; 5 log &amp;#34;github.com/sirupsen/logrus&amp;#34; 6) 7</description>
    </item>
    
    <item>
      <title>Go语言高性能日志库zap使用</title>
      <link>https://huangzhongde.cn/post/Golang/2020-03-07-golang_logger_zap/</link>
      <pubDate>Sat, 07 Mar 2020 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/Golang/2020-03-07-golang_logger_zap/</guid>
      <description>Go语言高性能日志库zap使用 Zap简介 zap是一个非常快的、结构化的，分日志级别的Go日志库。 Github仓库地址：https://github.com/uber-go/zap Zap性能 记录一条含有10个字段的日志 Package Time Time % to zap Objects Allocated ⚡️ zap 862 ns/op +0% 5 allocs/op ⚡️ zap (sugared) 1250 ns/op +45% 11 allocs/op zerolog 4021 ns/op +366% 76 allocs/op go-kit</description>
    </item>
    
    <item>
      <title>Go语言中使用gopsutil进行系统信息采集</title>
      <link>https://huangzhongde.cn/post/2020-03-06-golang_introduce_gopsutil/</link>
      <pubDate>Fri, 06 Mar 2020 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/2020-03-06-golang_introduce_gopsutil/</guid>
      <description>gopsutil包介绍 psutil是一个跨平台进程和系统监控的Python库，而gopsutil是其Go语言版本的实现。 安装go get github.com/shirou/gopsutil gopsutil包的使用 采集CPU相关信息 1package main 2 3import ( 4 &amp;#34;fmt&amp;#34; 5 &amp;#34;github.com/shirou/gopsutil/cpu&amp;#34; 6) 7 8func main() { 9 c, _ := cpu.Info() 10 fmt.Println(&amp;#34;cpu信息:&amp;#34;,c) 11 /</description>
    </item>
    
    <item>
      <title>Prometheus与Grafana入门</title>
      <link>https://huangzhongde.cn/post/Linux/2020-03-07_prometheus_grafana_introduce/</link>
      <pubDate>Fri, 06 Mar 2020 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/Linux/2020-03-07_prometheus_grafana_introduce/</guid>
      <description>Prometheus入门 Prometheus简介 Prometheus 是一套开源的系统监控报警框架。它启发于 Google 的 borgmon 监控系统，由工作在 SoundCloud 的 google 前员工在 2012 年创建，作为社区开源项目进行开发，并于 2015 年正式发布。2016 年，Prometheus 正式加入 Cloud Native Computing Foundation，成为受欢迎度仅次于 Kubernetes 的项目。 作为</description>
    </item>
    
    <item>
      <title>Go运维开发之日志收集（5）根据IP地址去拉取配置日志收集项</title>
      <link>https://huangzhongde.cn/post/2020-03-05-golang_devops_logAgent_5_get_conf_adapter_ipaddr/</link>
      <pubDate>Thu, 05 Mar 2020 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/2020-03-05-golang_devops_logAgent_5_get_conf_adapter_ipaddr/</guid>
      <description>Go运维开发之日志收集（5）根据IP地址去拉取配置日志收集项 Go运维开发之日志收集（1）收集应用程序日志到kafka中 Go运维开发之日志收集（2）从etcd中获取配置信息 Go运维开发之日志收集（3）根据etcd配置项创建多个tailTask Go运维开发之日志收集（4）监视etcd</description>
    </item>
    
    <item>
      <title>Go运维开发之日志收集（6）从kafka中获取日志信息</title>
      <link>https://huangzhongde.cn/post/2020-03-05-golang_devops_logAgent_6_get_data_from_kafka/</link>
      <pubDate>Thu, 05 Mar 2020 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/2020-03-05-golang_devops_logAgent_6_get_data_from_kafka/</guid>
      <description>Go运维开发之日志收集（6）从kafka中获取日志信息 Go运维开发之日志收集（1）收集应用程序日志到kafka中 Go运维开发之日志收集（2）从etcd中获取配置信息 Go运维开发之日志收集（3）根据etcd配置项创建多个tailTask Go运维开发之日志收集（4）监视etcd配置项</description>
    </item>
    
    <item>
      <title>Go运维开发之日志收集（7）将日志入库到Elasticsearch并通过Kibana进行展示</title>
      <link>https://huangzhongde.cn/post/2020-03-05-golang_devops_logAgent_7_write_to_es/</link>
      <pubDate>Thu, 05 Mar 2020 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/2020-03-05-golang_devops_logAgent_7_write_to_es/</guid>
      <description>Go运维开发之日志收集（7）将日志入库到Elasticsearch并通过Kibana进行展示 Go运维开发之日志收集（1）收集应用程序日志到kafka中 Go运维开发之日志收集（2）从etcd中获取配置信息 Go运维开发之日志收集（3）根据etcd配置项创建多个tailTask Go运维</description>
    </item>
    
    <item>
      <title>Go运维开发之日志收集（2）从etcd中获取配置信息</title>
      <link>https://huangzhongde.cn/post/2020-03-04-golang_devops_logAgent_2_get_config_from_etcd/</link>
      <pubDate>Wed, 04 Mar 2020 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/2020-03-04-golang_devops_logAgent_2_get_config_from_etcd/</guid>
      <description>Go运维开发之日志收集（2）从etcd中获取配置信息 Go运维开发之日志收集（1）收集应用程序日志到kafka中 在上一篇中我们已经实现了单个日志收集后发送到kafka中 我们想一下下面的几个问题： 怎么样实现多个日志收集？ 每收集一个日志都运行一个logAgent？ 每次收集日志都需要手动</description>
    </item>
    
    <item>
      <title>Go运维开发之日志收集（3）根据etcd配置项创建多个tailTask</title>
      <link>https://huangzhongde.cn/post/2020-03-04-golang_devops_logAgent_3_get_config_from_etcd_create_tailtask/</link>
      <pubDate>Wed, 04 Mar 2020 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/2020-03-04-golang_devops_logAgent_3_get_config_from_etcd_create_tailtask/</guid>
      <description>Go运维开发之日志收集（3）根据etcd配置项创建多个tailTask Go运维开发之日志收集（1）收集应用程序到日志kafka中 Go运维开发之日志收集（2）从etcd中获取配置信息 在上一篇中我们已经实现了从etcd中获取配置信息 下一步就是拿着这些配置项进行日志收集，之前的tail</description>
    </item>
    
    <item>
      <title>Go运维开发之日志收集（4）监视etcd配置项的变更</title>
      <link>https://huangzhongde.cn/post/2020-03-04-golang_devops_logAgent_4_watch_config_from_etcd/</link>
      <pubDate>Wed, 04 Mar 2020 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/2020-03-04-golang_devops_logAgent_4_watch_config_from_etcd/</guid>
      <description>Go运维开发之日志收集（4）监视etcd配置项的变更 Go运维开发之日志收集（1）收集应用程序日志到kafka中 Go运维开发之日志收集（2）从etcd中获取配置信息 Go运维开发之日志收集（3）根据etcd配置项创建多个tailTask 在上一篇中我们已经实现了从etcd中获取配置信息</description>
    </item>
    
    <item>
      <title>Go运维开发之日志收集（1）收集应用程序日志到kafka中</title>
      <link>https://huangzhongde.cn/post/2020-03-03-golang_devops_logAgent_1_write_log_to_kafka/</link>
      <pubDate>Tue, 03 Mar 2020 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/2020-03-03-golang_devops_logAgent_1_write_log_to_kafka/</guid>
      <description>Go运维开发之日志收集（1）收集应用程序日志到kafka中 需求背景 每个业务系统都有自己的⽇志，当业务系统出现问题时，需要通过查找⽇志信息来定位和解决问题。 当业务系统服务器⽐较少时，登陆到服务器上查看即可满⾜。但当系统机器规模巨⼤，登陆到服务器上查看⼏乎不现实（分布式的系统，⼀个系</description>
    </item>
    
    <item>
      <title>Go语言 etcd/clientv3报错：etcd undefined: resolver.BuildOption</title>
      <link>https://huangzhongde.cn/post/2020-03-02-etcd_undefined_resolver_buildoption/</link>
      <pubDate>Mon, 02 Mar 2020 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/2020-03-02-etcd_undefined_resolver_buildoption/</guid>
      <description>Go语言 etcd/clientv3报错： etcd undefined: resolver.BuildOption 故障描述 go语言版本 1go version 2go version go1.14 linux/amd64 经过测试，在macOS，Windows，Linux上都有这个问题 包管理器go mod 1module goAgent 2 3go 1.14 4 5require ( 6 github.com/Shopify/sarama v1.26.1 7 github.com/coreos/etcd v3.3.18+incompatible // indirect 8 github.com/coreos/go-systemd v0.0.0-20191104093116-d3cd4ed1dbcf // indirect 9 github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f // indirect 10 github.com/go-ini/ini v1.52.0 11 github.com/gogo/protobuf v1.3.1 // indirect 12 github.com/google/uuid v1.1.1 // indirect 13 github.com/hpcloud/tail v1.0.0 14 go.etcd.io/etcd v3.3.18+incompatible 15 go.uber.org/zap v1.14.0 // indirect 16 google.golang.org/grpc v1.27.1 // indirect 17 gopkg.in/fsnotify.v1 v1.4.7 // indirect 18 gopkg.in/ini.v1</description>
    </item>
    
    <item>
      <title>持续部署工具CDS部署</title>
      <link>https://huangzhongde.cn/post/2020-02-27-start_cds_run_with_binaries/</link>
      <pubDate>Thu, 27 Feb 2020 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/2020-02-27-start_cds_run_with_binaries/</guid>
      <description>持续部署工具CDS上手 一、CDS简介 CDS是Go语言开发的企业级持续部署工具和开源的DevOps自动化平台，支持的特性非常的多 CDS部署方式有多种，docker-compose方式，helm安装到kubernetes，二进制安装。这里主要介绍二进制安装方式。 更多关于CDS的知识，</description>
    </item>
    
    <item>
      <title>使用docker-compose快速部署cicd环境</title>
      <link>https://huangzhongde.cn/post/2020-02-26-using-docker-compose-deploy-cicd/</link>
      <pubDate>Wed, 26 Feb 2020 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/2020-02-26-using-docker-compose-deploy-cicd/</guid>
      <description>使用docker-compose快速部署cicd环境 安装docker 添加docker-ce源 1wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 安装docker 1yum -y install docker-ce 配置docker加速 1mkdir /etc/docker 2cat &amp;gt; /etc/docker/daemon.json &amp;lt;&amp;lt;EOF 3{ 4 &amp;#34;registry-mirrors&amp;#34;: [ 5 &amp;#34;https://mciwm180.mirror.aliyuncs.com&amp;#34;, 6 &amp;#34;https://docker.mirrors.ustc.edu.cn/&amp;#34;, 7 &amp;#34;https://registry.docker-cn.com&amp;#34; 8 ], 9 &amp;#34;exec-opts&amp;#34;: [&amp;#34;native.cgroupdriver=systemd&amp;#34;] 10} 11EOF 运行docker 1systemctl enable --now docker 安装docker-compose 安装docker-compose 1yum</description>
    </item>
    
    <item>
      <title>Kubernetes最佳实践（5）- 持续集成、测试和部署</title>
      <link>https://huangzhongde.cn/post/2020-02-25-kubernetes_best_practices_ch5_continuous_integration_testing_and_deployment/</link>
      <pubDate>Tue, 25 Feb 2020 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/2020-02-25-kubernetes_best_practices_ch5_continuous_integration_testing_and_deployment/</guid>
      <description>第 5 章 持续集成、测试和部署 在本章中，我们将介绍如何集成持续集成/连续部署 （CI/CD） 流水线以将应用程序交付给 Kubernetes 的关键概念。构建一个集成良好的流水线将使您能够信心十足地将应用程序交付到生产环境中，因此，在这里我们将介绍在您的环境中启用 CI/CD 的方法、工具和流程。CI/CD 的目标是实现完</description>
    </item>
    
    <item>
      <title>Kubernetes最佳实践（6）- 版本化、发布和滚动更新</title>
      <link>https://huangzhongde.cn/post/2020-02-25-kubernetes_best_practices_ch6_versioning_releases_and_rollouts/</link>
      <pubDate>Tue, 25 Feb 2020 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/2020-02-25-kubernetes_best_practices_ch6_versioning_releases_and_rollouts/</guid>
      <description>第 6 章 版本化、发布和滚动更新 传统单体应用程序的主要抱怨之一是，随着时间的推移，它们开始变得太大、太笨重，且难以以业务需要的速度进行适当的升级、版本化或修改。许多人可能会说，这是导致更敏捷的开发实践和微服务架构出现的主要关键因素之一。能够快速迭代新代码、解决新问题或修复隐藏问题，以</description>
    </item>
    
    <item>
      <title>Kubernetes最佳实践（1）- 设置基本服务</title>
      <link>https://huangzhongde.cn/post/2020-02-24-kubernetes_best_practices_ch1_setting_up_a_basic_service/</link>
      <pubDate>Mon, 24 Feb 2020 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/2020-02-24-kubernetes_best_practices_ch1_setting_up_a_basic_service/</guid>
      <description>从今天开始翻译《Kubernetes Best Practice》一书，边学习边总结，翻译不到位的地方欢迎指正。 第 1 章 设置基本服务 本章介绍在 Kubernetes 中设置简单多层应用程序的实践。该应用程序由一个简单的 Web 应用程序和一个数据库组成。虽然这可能不是最复杂的应用程序，但它是开始定向管理 Kubernetes 中应用程序的好地</description>
    </item>
    
    <item>
      <title>Kubernetes最佳实践（2）- 开发工作流</title>
      <link>https://huangzhongde.cn/post/2020-02-24-kubernetes_best_practices_ch2_developer_forkflows/</link>
      <pubDate>Mon, 24 Feb 2020 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/2020-02-24-kubernetes_best_practices_ch2_developer_forkflows/</guid>
      <description>第 2 章 开发工作流 Kubernetes 专为可靠运行的软件而构建。它使用面向应用程序的 API、自我修复属性和有用的工具（如Deployment）的推出简化了应用程序的部署和管理，实现软件零停机时间。尽管所有这些工具都很有用，但它们对于为 Kubernetes 开发应用程序来说并没有多大作用。此外，尽管许多群集旨在运行生产应</description>
    </item>
    
    <item>
      <title>Kubernetes最佳实践（3）- Kubernetes下监控和日志</title>
      <link>https://huangzhongde.cn/post/2020-02-24-kubernetes_best_practices_ch3_monitoring_and_logging_in_kubernetes/</link>
      <pubDate>Mon, 24 Feb 2020 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/2020-02-24-kubernetes_best_practices_ch3_monitoring_and_logging_in_kubernetes/</guid>
      <description>第 3 章 Kubernetes下监控和日志 在本章中，我们将讨论在 Kubernetes 中监控和日志记录的最佳做法。我们将深入探讨不同监视模式、要收集的重要指标以及从这些原始指标构建仪表板的详细信息。然后，我们总结一下为 Kubernetes 群集实现监视的示例。 指标与日志 您首先需要了解日志收集与指标收集之间的区别。它们是互补</description>
    </item>
    
    <item>
      <title>Kubernetes最佳实践（4）- 配置、Secrets 和 RBAC</title>
      <link>https://huangzhongde.cn/post/2020-02-24-kubernetes_best_practices_ch4_configuration_secrets_and_rbac/</link>
      <pubDate>Mon, 24 Feb 2020 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/2020-02-24-kubernetes_best_practices_ch4_configuration_secrets_and_rbac/</guid>
      <description>第 4 章 配置、Secrets 和 RBAC 容器的可组合性允许我们作为操作人员在运行时将配置数据引入到容器中。这使我们能够将应用程序的功能与它运行的环境解耦。通过容器运行时允许的在运行时传递环境变量或将外部卷装载到容器的约定，您可以在应用程序实例化时有效地更改应用程序的配置。作为开发人员，请务</description>
    </item>
    
    <item>
      <title>《Kubernetes Best Practices》Kubernetes最佳实践</title>
      <link>https://huangzhongde.cn/post/2020-02-23-Kubernetes_Best_Practices/</link>
      <pubDate>Sun, 23 Feb 2020 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/2020-02-23-Kubernetes_Best_Practices/</guid>
      <description>《Kubernetes Best Practices》Kubernetes最佳实践 目前发现的讲的比较全面的一本书，先从概念开始讲起，设计的领域很全，基本上就是生产环境中用到的包括持续集成，机器学习等都讲到老，然后再讲生产环境中的最佳实践，推荐给大家。 by Lachlan Evenson, Dave Strebel, Eddie Villalba, Brendan Burns Publisher: O&amp;rsquo;Reilly Media, Inc. Release Date: November 2019 ISBN: 9781492056478 Book</description>
    </item>
    
    <item>
      <title>《Kubernetes Operators》电子书PDF下载</title>
      <link>https://huangzhongde.cn/post/2020-02-23-kubernetes_operators_ebook/</link>
      <pubDate>Sun, 23 Feb 2020 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/2020-02-23-kubernetes_operators_ebook/</guid>
      <description>《Kubernetes Operators》电子书PDF下载 Table Of Contents Operators Teach Kubernetes New Tricks How Kubernetes Works Example: Stateless Web Server Stateful Is Hard Operators Are Software SREs How Operators Work Kubernetes CRs How Operators Are Made Example: The etcd Operator The Case of the Missing Member Who Are Operators For? Operator Adoption Let’s Get Going! Running Operators Setting Up an Operator Lab Cluster Version Requirements Authorization Requirements Standard Tools and Techniques Suggested Cluster Configurations Checking Your Cluster Version Running a Simple Operator A Common Starting Point Fetching the etcd Operator Manifests CRs: Custom API Endpoints Who Am I: Defining an Operator Service Account Deploying the etcd Operator Declaring an etcd Cluster Exercising</description>
    </item>
    
    <item>
      <title>CentOS8图文安装</title>
      <link>https://huangzhongde.cn/post/2020-02-22-centOS8-install/</link>
      <pubDate>Sat, 22 Feb 2020 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/2020-02-22-centOS8-install/</guid>
      <description>CentOS8图文安装 安装系统 下载镜像 建议从国内的镜像站下载：阿里云-CentOS8.1.1911 在有网络安装的情况下可以下载最小的启动包，然后安装的时候通过联网在线安装。 烧录镜像到U盘 推荐使用rufus，可以上官网下载 Windows下载地址：https://github.com</description>
    </item>
    
    <item>
      <title>Hugo代码增加显示行号功能</title>
      <link>https://huangzhongde.cn/post/2020-02-22-hugo-code-linenumber/</link>
      <pubDate>Sat, 22 Feb 2020 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/2020-02-22-hugo-code-linenumber/</guid>
      <description>Hugo代码增加显示行号功能 今天看Hugo文档的时候，发现hugo已经有显示行号的功能了 hugo的版本需要v0.60.0以上 实现的方式很简单，只要修改配置文件即可 修改配置文件 修改主配置文件config.toml,在配置文件中增加 1pygmentsUseClasses = true 2[markup] 3 [markup.highlight] 4 codeFences = true 5 guessSyntax = true 6 hl_Lines = &amp;#34;&amp;#34; 7 lineNoStart = 1 8 lineNos = true</description>
    </item>
    
    <item>
      <title>Hugo集成Share.js一键分享插件</title>
      <link>https://huangzhongde.cn/post/2020-02-22-hugo-blog-using-sharejs/</link>
      <pubDate>Sat, 22 Feb 2020 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/2020-02-22-hugo-blog-using-sharejs/</guid>
      <description>Hugo集成Share.js一键分享插件 一键分享功能是网站社交化的一个重要组件，当前发现一款使用非常简单的js插件-share.js，Github地址: https://github.com/overtrue/share.js 。 share.js使用非常简单，它可以通过参数配置自由控制展示哪些分享图标，同时它还可以自定义分享时的title以及icon。</description>
    </item>
    
    <item>
      <title>给Hugo添加字数统计和阅读时间功能</title>
      <link>https://huangzhongde.cn/post/2020-02-22-%E7%BB%99hugo%E6%B7%BB%E5%8A%A0%E5%AD%97%E6%95%B0%E7%BB%9F%E8%AE%A1%E5%92%8C%E9%98%85%E8%AF%BB%E6%97%B6%E9%97%B4%E5%8A%9F%E8%83%BD/</link>
      <pubDate>Sat, 22 Feb 2020 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/2020-02-22-%E7%BB%99hugo%E6%B7%BB%E5%8A%A0%E5%AD%97%E6%95%B0%E7%BB%9F%E8%AE%A1%E5%92%8C%E9%98%85%E8%AF%BB%E6%97%B6%E9%97%B4%E5%8A%9F%E8%83%BD/</guid>
      <description>给Hugo添加字数统计和阅读时间功能 经常逛别人的博客时发现&amp;quot;共XXX字，阅读大约需要XXX分钟&amp;quot;，发现这个功能比较牛X，然后网上搜索了一下，发现hugo有函数支持这个需求的。 修改页面 博客详情页：layouts/_default/single.html 修改sin</description>
    </item>
    
    <item>
      <title>Hugo插件之代码块拷贝插件</title>
      <link>https://huangzhongde.cn/post/2020-02-21-hugo-code-copy-to-clipboard/</link>
      <pubDate>Fri, 21 Feb 2020 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/2020-02-21-hugo-code-copy-to-clipboard/</guid>
      <description>hugo插件之代码块拷贝插件 很多网站都有代码块拷贝插件，但是查阅了很多的文档，找到hugo主题下有2个带代码拷贝的主题hugo-theme-learn和bulma，页面布局个人不是很喜欢，改动起来难度很大，还查了一些国外的网站，最后从Adding click-to-copy buttons to a Hugo powered blog文章中找到的代</description>
    </item>
    
    <item>
      <title>Hugo评论插件集成之Valine</title>
      <link>https://huangzhongde.cn/post/2020-02-20-hugo-comments-plugin-valine/</link>
      <pubDate>Thu, 20 Feb 2020 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/2020-02-20-hugo-comments-plugin-valine/</guid>
      <description>Hugo评论插件集成之Valine 简介 官网：https://valine.js.org Valine 诞生于2017年8月7日，是一款基于LeanCloud的快速、简洁且高效的无后端评论系统。 理论上支持但不限于静态博客，目前已有Hexo、Jekyll、Typecho、Hugo、Ghost 等博客</description>
    </item>
    
    <item>
      <title>Search</title>
      <link>https://huangzhongde.cn/search/</link>
      <pubDate>Tue, 18 Feb 2020 17:09:24 +0800</pubDate>
      
      <guid>https://huangzhongde.cn/search/</guid>
      <description></description>
    </item>
    
    <item>
      <title>《Istio实战指南》电子书上线了</title>
      <link>https://huangzhongde.cn/post/2020-02-18-istio-practice-giude/</link>
      <pubDate>Tue, 18 Feb 2020 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/2020-02-18-istio-practice-giude/</guid>
      <description>《Istio实战指南》电子书上线了 经过一段时间的整理，我的第一本电子书上线了，有兴趣的朋友可以在导航栏的图书入口进入免费阅读和下载 机票地址：istio实战指南</description>
    </item>
    
    <item>
      <title>使用certbot免费在线生成ssl证书</title>
      <link>https://huangzhongde.cn/post/2020-02-18-certbot-free-ssl-cert/</link>
      <pubDate>Tue, 18 Feb 2020 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/2020-02-18-certbot-free-ssl-cert/</guid>
      <description>使用certbot免费在线生成ssl证书 今天发现一个免费的ssl证书申请工具，直接在服务器上操作，而且自动更新有效期，相当于是永久免费使用了。 这个软件叫做：certbot，根据官网的介绍，支持apache,nginx,haproxy等的ssl证书的自动生成和配置，如果以上都不是，</description>
    </item>
    
    <item>
      <title>使用Gitbook生成电子书</title>
      <link>https://huangzhongde.cn/post/2020-02-18-gitbook-generate-ebook/</link>
      <pubDate>Tue, 18 Feb 2020 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/2020-02-18-gitbook-generate-ebook/</guid>
      <description>使用Gitbook生成电子书 gitbook网站可以生成精美的电子书，既可以在线阅读又可以生成pdf，epub，mobi格式的电子书籍进行离线阅读。文档使用的markdown语法，本人使用Markdown已经有2年多的经验了，下面介绍一下gitbook使用。 安装gitbook 安装n</description>
    </item>
    
    <item>
      <title>黄忠德</title>
      <link>https://huangzhongde.cn/about/</link>
      <pubDate>Tue, 18 Feb 2020 00:30:34 +0800</pubDate>
      
      <guid>https://huangzhongde.cn/about/</guid>
      <description>关于 黄忠德 基本情况 13年运维工作经验，现从事腾讯工业互联网运维工作； DevOps运维工程师，开源爱好者； 4年+Kubernetes平台经验，对Kubernetes生态有自己的认识； 掌握Jenkins+Gitlab+Helm持续集成/持续交付工具链； 对消息队列，缓存等中间件，软件架</description>
    </item>
    
    <item>
      <title>黄忠德</title>
      <link>https://huangzhongde.cn/top/about/</link>
      <pubDate>Tue, 18 Feb 2020 00:30:34 +0800</pubDate>
      
      <guid>https://huangzhongde.cn/top/about/</guid>
      <description>关于 黄忠德 11年运维工作经验 DevOps运维工程师，开源爱好者 2年+Kubernetes工作经验，对Kubernetes生态有一定的认识 掌握Jenkins+Gitlab持续集成/持续交付流程 熟悉shell编程，了解Python,Go Email:hzde0128@live.cn</description>
    </item>
    
    <item>
      <title>Hugo快速上手</title>
      <link>https://huangzhongde.cn/post/2020-02-15-hugo-quickstart/</link>
      <pubDate>Sat, 15 Feb 2020 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/2020-02-15-hugo-quickstart/</guid>
      <description>Hugo快速上手 1.Hugo简介 Hugo是go语言开发的静态网页生成工具，它在速度、易用性和可配置性方面进行了优化。Hugo获取一个包含内容和模板的目录，并将它们呈现为一个完整的HTML网站。 Hugo依赖具有前端内容的Markdown文件作为元数据，您可以从任何目录运行Hugo。</description>
    </item>
    
    <item>
      <title>图数据库Neo4j安装</title>
      <link>https://huangzhongde.cn/post/2019-12-04-%E5%9B%BE%E6%95%B0%E6%8D%AE%E5%BA%93Neo4j%E5%AE%89%E8%A3%85/</link>
      <pubDate>Wed, 04 Dec 2019 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/2019-12-04-%E5%9B%BE%E6%95%B0%E6%8D%AE%E5%BA%93Neo4j%E5%AE%89%E8%A3%85/</guid>
      <description>图数据库Neo4j安装 简介 Neo4j是一个高性能的,NOSQL图形数据库，它将结构化数据存储在网络上而不是表中。它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎，但是它将结构化数据存储在网络(从数学角度叫做图)上而不是表中。Neo4j也可以被看作是一个高性能的</description>
    </item>
    
    <item>
      <title>CentOS7安全基线检查修复工具</title>
      <link>https://huangzhongde.cn/post/2019-09-08-centos-bench-security/</link>
      <pubDate>Sun, 08 Sep 2019 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/2019-09-08-centos-bench-security/</guid>
      <description>CentOS7安全基线检查修复工具 github仓库地址：https://github.com/hzde0128/centos-bench-security 今天给大家介绍CentOS7下的安全基线检查和修复工具：centos-bench-security，使用的方式很简单直接克隆下</description>
    </item>
    
    <item>
      <title>ELKStack-6.7.1部署</title>
      <link>https://huangzhongde.cn/post/2019-04-30-ELKStack671-deploy/</link>
      <pubDate>Tue, 30 Apr 2019 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/2019-04-30-ELKStack671-deploy/</guid>
      <description>I、服务器设置 1172.16.10.11 server elk 2172.16.10.12 client filebeat 架构图 filebeat &amp;ndash;&amp;gt; logstash &amp;ndash;&amp;gt; elasticsearch &amp;ndash;&amp;gt; kibana 一、安装依赖 1.安装jdk 1wget https://download.oracle.com/otn/java/jdk/8u211-b12/478a62b7d4e34b78b671c754eaaf38ab/jdk-8u211-linux-x64.tar.gz?AuthParam=1556596505_0708cbbd2951fd1f3f6aa1ae12d05fd5 2tar xf jdk-8u211-linux-x64.tar.gz -C /usr 3cd /usr 4mv jdk1.8.0_211 java 添加环境变量 1cat &amp;gt; /etc/profile.d/java.sh &amp;lt;&amp;lt;EOF 2export JAVA_HOME=/usr/java 3export PATH=\${JAVA_HOME}/bin:\$PATH 4EOF 5source /etc/profile 验证安装 1java -version 2java version &amp;#34;1.8.0_211&amp;#34; 3Java(TM) SE Runtime Environment (build 1.8.0_211-b12) 4Java HotSpot(TM) 64-Bit Server VM (build 25.211-b12, mixed mode) 二、Elasticsearch 1.安装elasticsearch 1wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.7.1.tar.gz 2tar xf elasticsearch-6.7.1.tar.gz -C /usr/local 3cd /usr/local 4mv elasticsearch-6.7.1 elasticsearch 1useradd elasticsearch 1chown -R elasticsearch:elasticsearch elasticsearch 2</description>
    </item>
    
    <item>
      <title>MariaDB数据库基于SSL实现远程访问和主从复制</title>
      <link>https://huangzhongde.cn/post/MariaDB%E6%95%B0%E6%8D%AE%E5%BA%93%E5%9F%BA%E4%BA%8ESSL%E5%AE%9E%E7%8E%B0%E8%BF%9C%E7%A8%8B%E8%AE%BF%E9%97%AE%E5%92%8C%E4%B8%BB%E4%BB%8E%E5%A4%8D%E5%88%B6/</link>
      <pubDate>Sat, 27 Apr 2019 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/MariaDB%E6%95%B0%E6%8D%AE%E5%BA%93%E5%9F%BA%E4%BA%8ESSL%E5%AE%9E%E7%8E%B0%E8%BF%9C%E7%A8%8B%E8%AE%BF%E9%97%AE%E5%92%8C%E4%B8%BB%E4%BB%8E%E5%A4%8D%E5%88%B6/</guid>
      <description>MariaDB数据库基于SSL实现远程访问和主从复制 实验环境 系统环境：Centos6.5 数据库版本：5.5.36-MariaDB-log MariaDB Server 虚机数量：2 方案实施： 配置CA；并为node1和node2生成key和证书 在node1和node2上安装Mariadb 配置节点1为Maria</description>
    </item>
    
    <item>
      <title>gitlab-ce安装迁移部署</title>
      <link>https://huangzhongde.cn/post/2019-02-26-gitlab-migrate/</link>
      <pubDate>Tue, 26 Feb 2019 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/2019-02-26-gitlab-migrate/</guid>
      <description>gitlab-ce安装迁移部署 一、gitlab-ce安装 在迁移的目标服务器上安装gitlab-ce 1.1 添加 gitlab-ce 仓库 1tee /etc/yum.repos.d/gitlab-ce.repo &amp;lt;&amp;lt;EOF 2[gitlab-ce] 3name=gitlab-ce 4baseurl=http://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7 5repo_gpgcheck=0 6gpgcheck=0 7enabled=1 8gpgkey=https://packages.gitlab.com/gpg.key 9EOF 1.2 安装 gitlab-ce 1yum -y install gitlab-ce 1.3 配置 gitlab-ce 修改访问域名，修改external_url字段 1vim /etc/gitlab/gitlab.rb 2external_url &amp;#39;https://git.hzde.com&amp;#39; 由于我们的生产环境中统一用的nginx进行管理，使用外部nginx，不</description>
    </item>
    
    <item>
      <title>MongoDB高可用集群搭建</title>
      <link>https://huangzhongde.cn/post/2018-10-13-mongo-ha-cluster/</link>
      <pubDate>Sat, 13 Oct 2018 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/2018-10-13-mongo-ha-cluster/</guid>
      <description>MongoDB高可用集群搭建 一、环境准备 启动时需要使用非root用户，所有创建一个mongo用户： 1useradd mongo 2 3# 为mongo用户添加密码： 4echo 123456 | passwd --stdin mongo 5 6# 将mongo添加到sudoers 7echo &amp;#34;mongo ALL = (root) NOPASSWD:ALL&amp;#34; | tee /etc/sudoers.d/mongo 8chmod 0440 /etc/sudoers.d/mongo 9#解决sudo: sorry, you must have a tty to run sudo问题，在/etc/sudoer注释</description>
    </item>
    
    <item>
      <title>kafka集群部署</title>
      <link>https://huangzhongde.cn/post/kafka-cluster/</link>
      <pubDate>Thu, 11 Oct 2018 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/kafka-cluster/</guid>
      <description>kafka集群部署 1.简介 kafka:消息队列 官网地址：http://kafka.apache.org 下载地址：kafka_2.12-2.0.0.tgz 版本说明: kafka_2.12-2.0.0.tgz │ └─kafka版本 └─scala版本 2.环境准备 1vim /etc/hosts 2192.168.33.14 node4 3192.168.33.15 node5 4192.168.33.16 node6 3.安装配置 kafka集群依赖zookeeper,</description>
    </item>
    
    <item>
      <title>部署MySQL Galera Cluster</title>
      <link>https://huangzhongde.cn/post/mysql-galera-cluster/</link>
      <pubDate>Thu, 11 Oct 2018 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/mysql-galera-cluster/</guid>
      <description>部署MySQL Galera Cluster 0.功能简介 特性 基于行复制的完全并行同步复制 实时多主架构，任意节点可读写 无延迟复制，事务零丢失，可靠健壮的读写体验。 自动化节点关系控制：节点故障自动摘除，节点加入自动协调 接近原生的MySQL数据库连接的体验 原理简析 当一个事务在当前写入的节点提交后，通过wsrep</description>
    </item>
    
    <item>
      <title>搭建Zookeeper-3.4.13分布式集群</title>
      <link>https://huangzhongde.cn/post/zookeeper-3.4.13-cluster/</link>
      <pubDate>Wed, 10 Oct 2018 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/zookeeper-3.4.13-cluster/</guid>
      <description>搭建Zookeeper-3.4.13分布式集群 1.简介 zookeeper：分布式协调应用程序 官方网站：http://zookeeper.apache.org 最新版本：3.4.13 下载地址：zookeeper-3.4.13 2.安装部署 1vim /etc/hosts 2192.168.33.14 node4 3192.168.33.15 node5 4192.168.33.16 node6 3.下载安装 先安装jdk 1yum -y install java</description>
    </item>
    
    <item>
      <title>Ceph-10.2.10安装配置</title>
      <link>https://huangzhongde.cn/post/ceph-10-install/</link>
      <pubDate>Fri, 13 Apr 2018 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/ceph-10-install/</guid>
      <description>Ceph-10.2.10安装配置 环境准备 操作系统 1CentOS 7.2.1511 主机规划 1192.168.0.106 ceph-node1 #ceph-deploy 2192.168.0.107 ceph-node2 3192.168.0.108 ceph-node3 磁盘规划 1/dev/sda system 2/dev/sdb osd 3/dev/sdc osd 基本操作 关闭防火墙 1setenforce 0 2sed -i s&amp;#39;/SELINUX=enforcing/SELINUX=disabled&amp;#39;/g /etc/selinux/config 3yum -y install epel-release ssh免密登录 ceph-node1 1ssh-keygen -t rsa 2ssh-copy-id ceph-node1 3ssh-copy-id ceph-node2 4ssh-copy-id ceph-node3 时间同步 1yum -y install ntp ntpdate 2ntpdate cn.pool.ntp.org 开始部署 使用国内源 1export CEPH_DEPLOY_REPO_URL=http://mirrors.163.com/ceph/rpm-jewel/el7 2export CEPH_DEPLOY_GPG_URL=http://mirrors.163.com/ceph/keys/release.asc 安装ceph-deploy 1yum -y ceph-deploy 使用ceph-deploy快速部署</description>
    </item>
    
    <item>
      <title>部署 harbor私有仓库</title>
      <link>https://huangzhongde.cn/post/2018-03-23-deploy-harbor-registry/</link>
      <pubDate>Fri, 23 Mar 2018 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/2018-03-23-deploy-harbor-registry/</guid>
      <description>部署 harbor 私有仓库 1.下载 docker-compose-1.12.0 1wget https://github.com/docker/compose/releases/download/1.12.0/docker-compose-Linux-x86_64 2mv docker-compose-Linux-x86_64 /usr/bin/docker-compose 3chmod a+x /usr/bin/docker-compose 2.下载 harbor-1.1.2 1wget --continue https://github.com/vmware/harbor/releases/download/v1.1.2/harbor-offline-installer-v1.1.2.tgz 2tar -xzvf harbor-offline-installer-v1.1.2.tgz 3cd harbor 3.导入离线安装包中 harbor 相关的 docker images： 1docker load -i harbor.v1.1.2.tar.gz 2dd60b611baaa: Loading layer [==================================================&amp;gt;] 133.2MB/133.2MB 30bfc226dc2e8: Loading layer [==================================================&amp;gt;] 1.536kB/1.536kB 466c3231118d2: Loading layer [==================================================&amp;gt;] 17.69MB/17.69MB 5fe2c778bb727: Loading layer [==================================================&amp;gt;] 17.69MB/17.69MB 6Loaded image: vmware/harbor-jobservice:v1.1.2 7fe4c16cbf7a4: Loading layer [==================================================&amp;gt;] 128.9MB/128.9MB 8c4a8b7411af4: Loading layer [==================================================&amp;gt;] 60.57MB/60.57MB 93f117c44afbb: Loading layer [==================================================&amp;gt;] 3.584kB/3.584kB 103569f62067e2: Loading layer [==================================================&amp;gt;] 17.86MB/17.86MB 11Loaded image: vmware/nginx:1.11.5-patched 12Loaded image: photon:1.0 134a050fccec52: Loading layer [==================================================&amp;gt;] 12.16MB/12.16MB 14d918d73369ec: Loading layer [==================================================&amp;gt;] 17.3MB/17.3MB 1522898836924e: Loading layer [==================================================&amp;gt;] 15.87kB/15.87kB 16Loaded image: vmware/notary-photon:server-0.5.0 17a39bd6a7f897: Loading layer [==================================================&amp;gt;] 10.95MB/10.95MB 186f79b8337a1f: Loading layer [==================================================&amp;gt;] 17.3MB/17.3MB 1974bbd0e81dd0: Loading layer [==================================================&amp;gt;]</description>
    </item>
    
    <item>
      <title>Kubernetes v1.9.1 单机版本一键安装脚本</title>
      <link>https://huangzhongde.cn/post/2018-03-05-kubernetes-v10901-autodeploy/</link>
      <pubDate>Thu, 15 Mar 2018 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/2018-03-05-kubernetes-v10901-autodeploy/</guid>
      <description>Kubernetes v1.9.1 单机版本一键安装脚本 自己部署并测试通过的，脚本如下： 1#!/bin/bash 2# ---------------------------------------- 3# kubernetes v1.9.1 单机一键部署脚本 4# 用于实验环境 5# CentOS 7.2.1511下测试OK 6# Powered by Jerry Wong 7# 2018-03-15 hzde0128@live.cn 8# ---------------------------------------- 9 10function get_local_ip() { 11 IP_ADDR=`ip addr | grep inet | grep -Ev &amp;#39;127|inet6&amp;#39; | awk &amp;#39;{print $2}&amp;#39; | awk -F&amp;#39;/&amp;#39; &amp;#39;{print $1}&amp;#39;` 12 export NODE_IP=${IP_ADDR} 13} 14 15function basic_settings() { 16 getenforce | grep Disabled &amp;gt; /dev/null 17 if [ $? -ne 0 ]; then 18 sed -i &amp;#34;s/SELINUX=enforcing/SELINUX=disabled/g&amp;#34; /etc/selinux/config 19 fi 20 systemctl stop firewalld 21 systemctl disable firewalld 22} 23 24 25function install_docker()</description>
    </item>
    
    <item>
      <title>CentOS7下分布式系统GlusterFS安装配置</title>
      <link>https://huangzhongde.cn/post/2017-02-16-glusterfs-on-centos7/</link>
      <pubDate>Thu, 16 Feb 2017 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/2017-02-16-glusterfs-on-centos7/</guid>
      <description>CentOS7下分布式系统GlusterFS安装配置 一、主机规划 操作系统版本为:CentOS 7.2.1511 1node1:172.17.0.1 gfs1 2node2:172.17.0.2 gfs2 3node3:172.17.0.3 gfs3 4node4:172.17.0.4 gfs 5client:172.17.0.5 二、安装 1.在node1-4上安装glusterfs-server 1yum install -y centos-release-gluster38 2yum install -y glusterfs glusterfs-server glusterfs-fuse 设置开机自启动并启动 1systemctl enable glusterd.service 2systemctl start glusterd.service 2.在gfs1-gfs4节点上配置整个Gluste</description>
    </item>
    
    <item>
      <title>Hello World</title>
      <link>https://huangzhongde.cn/post/hello-world/</link>
      <pubDate>Wed, 15 Feb 2017 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/post/hello-world/</guid>
      <description>你好，世界 哈喽，大家好，我的个人博客今天终于开通了，欢迎大家光临。</description>
    </item>
    
    <item>
      <title>归档</title>
      <link>https://huangzhongde.cn/archives/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://huangzhongde.cn/archives/</guid>
      <description></description>
    </item>
    
  </channel>
</rss>
