专注容器化、虚拟化、NFV、云原生架构和微服务架构
这个是因为老版本的K8S本身的调度机制决定的,是先选择一个ZONE来创建PV,但是可能到因为该ZONE没有资源而创建不出该ZONE内的POD;现在可以通过WaitForFirstConsumer来规避这个问题,具体可参考:https://kubernetes.io/docs/concepts/storage/storage-classes/
K8s里默认主要统计的就是POD内所有进程占用的内存和,当出现这类问题可以尝试调整drop_caches内核参数来快速释放:https://linux-mm.org/Drop_Caches
在k8s集群内部,若您的VPC网络可以出公网,那么POD本身也是可以直接出公网的; 访问集群外部的etcd服务,主要还是看网络连通性,若etcd集群在同一个VPC那么可以直接通过etcd私网endpoint来访问,若不在同一个VPC中可以采用VPC间网络打通的方式来将网络打通:https://help.aliyun.com/document_detail/97766.html?spm=a2c4g.11174283.6.560.1a0f6dd4jFz0I8
kubelet默认有容器的自动回收机制,可以参考 https://kubernetes.io/docs/concepts/cluster-administration/kubelet-garbage-collection/#container-collection ,看看是否有触发到这些阈值
SLS Project是全网唯一的,建议尽量设置较复杂的一些名称:
看这里的报错您应该是在仓库控制台未初始化registry账号密码; 另外镜像仓库也支持跟RAM对接,通过RAM授权来操作:https://help.aliyun.com/document_detail/67992.html?spm=a2c4g.11186623.6.557.19e4441aFD58TB
开启日志服务,主要可以帮助我们的应用来自动采集日志,包括后续可以配置一些监控大盘,日志审计,以及业务告警,K8S事件中心等等诸多优势;日志采集完全是基于异步的,对应用的访问无任何影响,具体可参考https://help.aliyun.com/document_detail/104445.html?spm=a2c4g.11186623.6.640.7682735dyYHUju
这里可以分两种层面来压: 1. 首先需要关注单POD的并发数,这种依然可以采用一些传统有效的压测工具,比如wrk等,可以在集群内部节点上对该POD进行压测 2. 关注全链路压测,可以将该服务通过LoadBalancer Service或者Ingress的方式暴露出来,然后基于PTS来进行全链路压测:https://www.aliyun.com/product/pts?spm=5176.10695662.783999.1.393f2eeaF9BaVo
可访问Ingress的方式暴露出来,具体配置方式和示例可参考:https://yq.aliyun.com/articles/598826?spm=a2c4e.11155435.0.0.22a63312QomKih
有可能是集群内CoreDNS负载高,可以尝试下面两种方式: 1. 扩容下集群内的CoreDNS实例数 2. 通过LocalDNS方式来优化CoreDNS负载:https://kubernetes.io/docs/tasks/administer-cluster/nodelocaldns/
这个看起来是npm失败,可能跟不同地域的npm mirror有关系,可尝试下其他地域的构建看看
会的;当移除节点时,该节点上的容器会自动漂移到其他正常的节点上,前提是要确保集群容量充足
可以参考这里来配置即可:https://help.aliyun.com/document_detail/25987.html?spm=a2c4g.11174283.6.682.6e715a78s47ovw
connection reset by peer,一般来说是upstream reset了这个连接,需要看下upstream里配置的timeout值,要确保其值不小于nginx里的proxy_read_timeout等配置
在location中配置rewrite规则,在ingress-nginx层面可以如下两种方式配置: 1. https://kubernetes.github.io/ingress-nginx/examples/rewrite/#rewrite-target 2. 或者也可以通过自定义location ngx snippet的方式:https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/#configuration-snippet
调整下kube-system/nginx-configuration里如下配置: https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/configmap/#proxy-body-size
Ingress主要是7层的负载均衡,7层长连接的场景主要类似websocket方式等,主要是需要调整一些timeout参数,具体说明可参考:https://kubernetes.github.io/ingress-nginx/user-guide/miscellaneous/#websockets
SLB上端口对应的是ingress-nginx svc的port,而后端svc是被配置在ingress-nginx里在,总体架构如下:
也是可以的; 1. 修改kube-system/nginx-ingress-lb svc指定443端口使用https协议: 2. 同时将svc yaml中的targetPort: 443
改成targetPort: 80
可以参考这里 https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/#custom-timeouts 调大对应的timeout值