11 8 月, 2022,由 frank撰写
陈述式管理(CLI)
陈述式管理方式主要通过kubectl来进行管理,kubectl用于与apiserver进行通信,实现管理k8s各种资源的一种有效途径;
管理名称空间
查看名称空间
下面显示的都是默认生成的命名空间,简称为kubectl get ns:
root@f0-13:~# kubectl get namespace
NAME STATUS AGE
default Active 44h
kube-node-lease Active 44h
kube-public Active 44h
kube-system Active 44h
查询特定命名空间中的所有资源,下面是default命名空间:
root@f0-13:~# kubectl get all -n default
NAME READY STATUS RESTARTS AGE
pod/nginx-ds-lc59t 1/1 Running 0 39h
pod/nginx-ds-pkh75 1/1 Running 0 39h
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/kubernetes ClusterIP 10.254.0.1 <none> 443/TCP 44h
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
daemonset.apps/nginx-ds 2 2 2 2 2 <none> 39h
完整阅读
7 6 月, 2022,由 frank撰写
安装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
完整阅读
8 1 月, 2022,由 frank撰写
背景
我不是程序员,只是偶尔用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
完整阅读