Kubernetes 取消了对 Docker 的支持,但支持 Containerd,这意味着什么?Docker 开发了containerd 并用它来管理容器。
有2个不同的containerd吗?
如果不是,那么为什么 kubernetes 无法与 Docker 守护进程使用的 containerd 进行通信/使用?
我有一个在 Kubernetes 集群上运行的 openjdk:8 映像。我添加了内存 HPA(Horizontal Pod Autoscaling),它可以很好地扩展,但由于 JVM 不会将内存从堆释放回操作系统,因此 Pod 不会缩小规模。以下是 hpa.yaml
apiVersion: autoscaling/v2beta2
kind: HorizontalPodAutoscaler
metadata:
name: image-server
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: image-server
minReplicas: 2
maxReplicas: 10
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 60
- type: Resource
resource:
name: memory
target:
type: Utilization
averageUtilization: 60
Run Code Online (Sandbox Code Playgroud)
解决此问题的一种方法是使用正确的 GC 并使其释放内存,但由于 JVM 出于性能原因设计为不会频繁地从堆中释放内存,因此这样做并不是一个好主意。Kubernetes 有办法处理这个问题吗?就像不检查操作系统的内存使用情况一样,我们是否可以只检查堆和缩放中的内存使用情况?
我是 kubernetes 的新手,我看到我的节点的角色之一是control-plane,master
. 有什么不同?主节点是运行 kube-apiserver 的节点吗?那么什么定义了控制平面节点?
我正在使用 kubectl 1.20.2(kubeadm 也是 1.20.2)。