物联网学习日记9

1.数据卷容器
解析:如果用户需要在多个容器之间共享一些持续更新的数据,最简单的方式就是使用数据卷容器。数据卷容器也是一个容器,但是它的目的是专门提供数据卷给其它容器挂载。

2.Dockerfile文件
解析:Dockerfile主体内容分为四部分:基础镜像信息、维护者信息、镜像操作指令和容器启动时执行指令。

3.Dockerfile操作指令
解析:
[1]RUN:运行指定命令
[2]CMD:启动容器时指定默认执行的命令
[3]ADD:添加内容到镜像
[4]COPY:复制内容到镜像

4.Swarm
解析:Docker Swarm提供Docker容器集群服务,是Docker官方对容器云生态进行支持的核心方案。使用它用户可以将多个Docker主机抽象为大规模的模拟Docker服务,快速打造一套容器云平台。

5.K8S中的Service
解析:
[1]一个Service可以看作一组提供相同服务的Pods的对外访问接口,Service作用于哪些Pods是通过label selector来定义的,这些Pods能被Service访问,Pod之间的发现和路由由Kubernetes Service处理。
[2]Service有四种type:ClusterIP[默认]、NodePort、LoadBalancer、ExternalName。其中NodePort和LoadBalancer两类型的Services可以对外提供服务。

6.k8s client-go
解析:Go clients for talking to a kubernetes cluster.

7.查看所有pod
kubectl get pods -A -o wide

8.查看服务
kubectl get svc -n kubernetes-dashboard -o wide

9.网络文件系统
解析:网络文件系统,英文Network File System[NFS],是由SUN公司研制的UNIX表示层协议[presentation layer protocol],能使使用者访问网络上别处的文件就像在使用自己的计算机一样。

10.etcd
解析:K8S集群中的信息交由etcd维护,etcd是一个分布式的键值数据存储,它是集群中信息的真实来源。

11.kubelet服务
解析:kubelet用于管理每个节点上的pod。

扫描二维码关注公众号,回复: 10534276 查看本文章

12.复制控制器[replication controller]
解析:复制控制器是一个Kubernetes服务,用来确保存在正确数量的pod节点运行在集群中。

13.go mod tidy
解析:增加缺失的包,移除没用的包。

14.goroutine和channel
解析:goroutine和channel是GO语言秉承的CSP[Communicating Sequential Process]并发模式的重要实现基础。

15.defer
解析:defer是GO的函数延迟调用。

16.PHONY
解析:
[1]Makefile中所有不会产生与目标名称相同名称的输出文件的目标都应为PHONY。这通常包括all,install,clean,distclean等。
[2].PHONY是一个伪目标,可以防止在Makefile中定义的只执行命令的目标和工作目录下的实际文件出现名字冲突,另一种是提交执行makefile时的效率。

17.环境变量GO111MODULE
解析:
[1]GO111MODULE=off go命令从不使用新模块支持。使用GOPATH模式[查找vendor目录和GOPATH路径下的依赖]
[2]GO111MODULE=on go命令开启模块支持,只根据go.mod下载和查找依赖
[3]GO111MODULE=auto默认值,go命令根据当前目录启用或禁用模块支持。仅当当前目录位于$GOPATH/src之外并且其本身包含go.mod文件或位于包含go.mod文件的目录下时,才启用模块支持。

18.Go交叉编译
解析:

CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build ./main.go

19.CGO_ENABLED
解析:使用CGO_ENABLED=0来控制go build是否使用CGO编译器。

20.golang交叉编译支持
解析:

go tool dist list

21.$@和$#
解析:
[1]$@:表示所有脚本参数的内容
[2]$#:表示返回所有脚本参数的个数。

22.Go项目执行命令
解析:
[1]go vet:静态检查
[2]go test:运行单元测试
[3]go fmt:格式化
[4]go build:编译
[5]go run:运行

23.Go项目的Makefile
解析:
[1]make default:编译
[2]make fmt:格式化
[3]make vet:静态检查
[4]make test:运行测试
[5]make install:下载依赖库
[6]make clean:移除编译的二进制文件

24.gcflags
解析:go build可以用-gcflags给go编译器传入参数,也就是传给go tool compile的参数,因此可以用go tool compile --help查看所有可用的参数。

25.go build ldflags
解析:

go build -ldflags "-w -s -X main.Version=${VERSION} -X main.Build=${BUILD}"

[1]-w:去掉DWARF调试信息,得到的程序就不能用gdb调试了。
[2]-s:去掉符号表,panic时候的stack trace就没有任何文件名/行号信息了,这个等价于普通C/C++程序被strip的效果。
[3]-X:设置包中的变量值。

参考文献:
[1]kubernetes/client-go:https://github.com/kubernetes/client-go
[2]Makefile中.PHONY的作用:https://www.cnblogs.com/idorax/p/9306528.html

发布了400 篇原创文章 · 获赞 423 · 访问量 38万+

猜你喜欢

转载自blog.csdn.net/shengshengwang/article/details/104602345