k8s集群安装完成后,通过kubectl apply -f calico.yaml部署calico资源,主要包括:1.calico_backend: “bird”,默认使用bird构建bgp mesh的全连接网络。
比如我们直接创建上面这个 Pod:创建完成后,我们可以看到 Pod 被调度到 node1 这个节点上:然后我们到 node1 节点上去查看 Pod 里面启动的 resource-demo1 这个容器:我们可以去查看下主容器的信息:实际上我们就可以看到这个容器的一些资源情况,Pod 上的资源配置最终也还是通过底层的容器运行时去控制 CGroup 来实现的,我们可以进入如下目录查看 CGroup 的配置,该目录就是 CGroup 父级目录,而 CGroup 是通过文件系统来进行资源限制的,所以我们上面限制容器的资源就可以在该目录下面反映出来:其中 cpu.cfs_quota_us 就是 CPU 的限制值,如果要查看具体的容器的资源,我们也可以进入到容器目录下面去查看即可。
Kubernetes 遵循非常传统的客户端/服务端的架构模式,客户端可以通过 RESTful 接口或者直接使用 kubectl 与 Kubernetes 集群进行通信,这两者在实际上并没有太多的区别,后者也只是对 Kubernetes 提供的 RESTful API 进行封装并提供出来。
pod-eviction-timeout:NotReady 状态节点超过该时间后,执行驱逐,默认 5 min,适用于k8s 1.13版本之前1.13版本后,集群开启TaintBasedEvictions 与TaintNodesByCondition 功能,即taint-based-evictions,即节点若失联或者出现各种异常情况,k8s会自动为node打上污点,同时为pod默认添加如下容忍设置: tolerations: - effect: NoExecute key: node.kubernetes.io/not-ready operator: Exists tolerationSeconds: 300 - effect: NoExecute key: node.kubernetes.io/unreachable operator: Exists tolerationSeconds: 300 即各pod可以独立设置驱逐容忍时间。
dev开发环境,基本用来本地调试,在开发人员本地启动项目时一般是这个环境。我们使用了4套配置,每套配置都可以区分四个环境:spring boot的bootstrap.yml 这配置文件一般是全模块通用的配置,例如日志,nacos配置,链路追踪配置等等。