Archive

‘学习笔记’ 分类存档

Manual set up two containers by “docker run”

安装docker步骤此处忽略,详细可以看之前的文章

容器的网络类型

默认docker三种网络:

[root@localhost ~]# docker network ls
NETWORK ID     NAME      DRIVER    SCOPE
0dc7621fa6c0   bridge    bridge    local
09d08085f98c   host      host      local
8da76deb9eb9   none      null      local

先随便开一个centos的docker,“-t” 指定一个伪终端,保持docker可以打开,否则会出现“Exited (0)”的问题:

[root@localhost ~]# docker run --name centos -dt centos

查看容器的网络类型,可以看到当创建容器不指定网络类型,默认会绑定到bridge上:

[root@localhost ~]# docker inspect 355a |grep "Networks" -A 100
            "Networks": {
                "bridge": {
                    "IPAMConfig": null,
                    "Links": null,
                    "Aliases": null,
                    "NetworkID": "0dc7621fa6c0e40a1129104ed94deac543cf82ce44ab79fdf7ed38b9975f9a78",
                    "EndpointID": "2dae4a431efd76066081424e47a7e6bc53e4102b14bf36bbdfda34492efd6369",
                    "Gateway": "172.17.0.1",
                    "IPAddress": "172.17.0.2",
                    "IPPrefixLen": 16,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "02:42:ac:11:00:02",
                    "DriverOpts": null
完整阅读

K8s – Manual Deployment

终于尝试手动部署K8s了,在此感谢朋友分享的”老男孩“教学视频??。以及朋友分享的实验环境(基于EVE-NG);持续大半年的拉锯战,总算完成了基础组件的全部部署 ^_^

更新说明:

  • 2022-01-17:更新拓扑信息;
  • 2022-01-19:添加基础配置;
  • 2022-01-23:添加证书配置及Bind9部署;
  • 2022-01-25:添加Docker及私有仓库Harbor相关部署配置;
  • 2022-07到08两个月时间:完成etdc,apiserver,kube-controller-manager,kube-scheduler,kubelet和kube-proxy的部署;

Topology

基础配置

端口配置

只展示frank0-11,其他Server等同;

root@frank0-11:~# more /etc/netplan/00-installer-config.yaml
# This is the network config written by 'subiquity'
network:
  ethernets:
    ens3:
      dhcp4: false
      addresses: [172.20.0.11/24]
      gateway4: 172.20.0.1
      nameservers:
        addresses: [114.114.114.114]
  version: 2
root@frank0-12:~# netplan apply
完整阅读

Go初体验

背景

我不是程序员,只是偶尔用Python写一些对个人有些帮助的小程序。之前了解过Go,朋友也一直在推荐Go,但一直没有深入研究过,自从面对下面几个事后,就萌生了想尝试一下的想法:

  • 我想用Caddy搭一个简易HTTP Server,一般建议Docker部署,比较方便,但发现macOS如果需要支持Docker,需要装Docker虚拟机,光虚拟机就占了1.5g的内存。后来我去Caddy官网下载了支持ARM架构的Caddy,只有小40m左右,下载即可执行,不需要任何环境,此程序是用Go编译而成的,关于Caddy在macOS的使用,可以看这里
  • Java也是编译语言,可是要想执行,仍然需要Java虚拟机提供运行时环境;类比Python类似,是编译+解释语言,需要Python环境才能进行解释运行;
  • 我需要对多个地址发送ICMP探测报文,Terminal其实挺好用的,只是为了多个地址,需要打开多个窗口,不是很灵活,为了CPU不影响ICMP报文,想找一款支持多核的Ping工具,但发现macOS不像Linux,没有Affinity和Taskset来给进程分配内核,最后找到一个用Go做的开源Ping软件,并支持多线程,但这个运行有些问题,需要排障;

此篇文章简单用实例总结Go的初体验,以及Go程序的排错方法,方便以后复习查阅。

机器环境

System: macOS Monterey 12.1
Arch:   darwin/arm64
Go ver: 1.17.5
完整阅读

How To Send Internet Route By BIRD?

背景

BIRD是一个BGP守护进程,可以同真实的物理设备建立BGP邻居,并灵活控制路由的收发,尝尝可以看到IXP或云提供商(如Equinix)使用此开源软件。我将使用BIRD给Peer路由器发送Internet路由,以帮我完成演练,但看上去BIRD作为BGP Speaker或控制BGP路由比较好用,但生成路由并不是特别灵活,需要把路由批量灌到Kernel中,然后重分发到BGP并发给Peer路由器,此篇文章总结下如何使用BIRD。

相关链接

BIRD只是众多BGP开源软件中的一个,其他的还有如Quagga/FRR,ExaBGP等,我在查找BIRD时也看到了一些对比文章,一起列在下面,供以后方便查阅:

BIRD2 User Guide:

完整阅读

Install EVE-NG in ESXI

PS:如果可以,还是建议使用物理机安装EVE NG,另外PNET也是一个不错的选择,算是另一个纯免费的开源软件,跟EVE NG用的一样的核心文件,但不像EVE NG高级功能需要收费,PNET纯免费;

安装EVE NG

直接从官网选择OVF的Image下载,通过ESXI新建虚拟机时,拖拽OVF和VMDK两个文件进去;安装完后配置CPU/Memory/硬盘等,并且在CPU中打开嵌套虚拟化的设置;

配置EVE NG

安装完后,进去按照提示配置,完成配置启动后发现没有IP,怀疑是我的服务器不能访问外网的原因,因此手动配置IP以及调整SSH的端口:

完整阅读
blonde teen swallows load.xxx videos