/images/avatar.jpg

Vagrant本地快速启动Kubernetes集群

https://image-static.segmentfault.com/311/703/311703680-5b80e2877f8c8_articlex

Kubernetes,简称 k8s(k,8 个字符,s——明白了?)或者 “kube”,是一个开源的 Linux 容器自动化运维平台,它消除了容器化应用程序在部署、伸缩时涉及到的许多手动操作。换句话说,你可以将多台主机组合成集群来运行 Linux 容器,而 Kubernetes 可以帮助你简单高效地管理那些集群。构成这些集群的主机还可以跨越公有云、私有云以及混合云。

最小生成树回顾

/images/MST.png

解决最小生成树(Minimum spanning tree)问题的算法,书上介绍了两个:Prime算法和Kruskal算法。

Prim算法

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <stdio.h>
#include "graph.h"

extern void DispMat1(MGraph);
void Prim(MGraph g, int v)
{
    int lowcost[MAXV], min, n = g.n;
    int closest[MAXV], i, j, k;
    for (i = 0; i < n; i++)
    {
        lowcost[i] = g.edges[v][i];
        closest[i] = v;
    }
    for (i = 1; i < n; i++)   // 找出n - 1个顶点
    {
        min = INF;
        for (j = 0; j < n; j++)
        {
            if (lowcost[j] != 0 && lowcost[j] < min)
            {
                min = lowcost[j];
                k = j;
            }
        }
        printf("    边(%d, %d)权为:%d\n", closest[k], k, min);
        lowcost[k] = 0;      // 标记k已经加入U
        for (j = 0; j < n; j++)
        {
            if (g.edges[k][j] != 0 && g.edges[k][j] < lowcost[j])
            {
                lowcost[j] = g.edges[k][j];
                lowcost[j] = k;
            }
        }
    }
}

Kruskal算法

实现克鲁斯卡尔算法的关键是判断选取的边是否与生成树中已保留的边形成回路,这可以通过判断边的两个顶点所在的连通分量来解决(给顶点所在连通分量编号)。

一步步自己做个Docker之Linux Namespace 简介

/images/docker-logo.png

本文环境:

  • OS:Ubuntu 18.04.3 LTS
  • 内核版本: 5.0.0-36-generic

Linux Namespaces

Docker的所用的两个关键技术,一个是Namespaces,一个是Cgroups。它俩都不是新技术,Linux内核很早就支持,但是Docker把它们有机地结合起来,加上自己创新,使得现在容器技术非常流行。
Linux Namespaces其实是做到了进程之间全局资源的隔离,譬如,UTS Namespace隔离了Hostname空间。这意味着在新的UTS Namespace中的进程,可以拥有不同于宿主机的主机名。

CefSharp浅尝辄止

/images/CefSharp-logo.png

CefSharp

CEF全称:Chromium Embedded Framework
CefSharp是什么?官网上它是这么写的:CefSharp是在C#或VB.NET应用程序中嵌入全功能标准兼容web浏览器的最简单方法。CefSharp有WinForms和WPF应用程序的浏览器控件,也有自动化项目的无标题(屏幕外)版本。CefSharp基于Chromium嵌入式框架,这是Google Chrome的开源版本。
说白了,就是基于C#或VB语言的可编程浏览器(当然CEF也有其他语言的,如JavaGo)。

Jenkins在Docker中运行中的坑

jenkins是什么?

  Jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具,起源于Hudson(Hudson是商用的),主要用于持续、自动的构建/测试软件项目、监控外部任务的运行。Jenkins用Java语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行。通常与版本管理工具(SCM)、构建工具结合使用。常用的版本控制工具有SVN、GIT,构建工具有Maven、Ant、Gradle。
上面的介绍是抄的(逃,简单讲,就是Jenkins能帮我们自动编译,测试,发布软件