docker - 在我的 macOS 主机上运行的 CentOS docker 容器中运行的 k8s - 交换问题?
问题描述
我想v1.13.5
在 macOS 主机上运行的 CentOS docker 容器中运行 Kubernetes 单元测试。我在尝试运行时遇到错误,kubeadm
因为它不喜欢启用交换。
1)我试过kubeadm init --fail-swap-on=false
但得到Error: unknown flag: --fail-swap-on
. 也许仅在较旧的 k8s 中受支持,但文档似乎并不清楚。
2)我试过
kubeadm init --config /etc/kubernetes/kubeadm-config.yaml --ignore-preflight-errors=all --skip-token-print
喜欢/etc/kubernetes/kubeadm-config.yaml
---
apiVersion: kubeadm.k8s.io/v1alpha3
controlPlaneEndpoint: ""
etcd:
local:
dataDir: /var/lib/etcd
imageRepository: k8s.gcr.io
kind: ClusterConfiguration
networking:
podSubnet: "10.244.0.0/16"
serviceSubnet: "10.96.0.0/12"
kubernetesVersion: "v1.13.5"
failSwapOn: false
但这给了...error execution phase wait-control-plane: couldn't initialize a Kubernetes cluster", ... SNIP ... error unmarshaling JSON: while decoding JSON: json: unknown field \"failSwapOn\""
3)我尝试关闭容器内的交换,但我得到......
docker run -i -t centos
[root@2ed611b32f1a /]# swapoff -a
swapoff: 不是超级用户。
或者它在privileged
运行模式但不影响设置 时
docker run --privileged -i -t centos
[root@94f9a0e5e46a /]# swapoff -a
[root@94f9a0e5e46a /]# free -h
total used free shared buff/cache available
Mem: 12Gi 371Mi 11Gi 1.0Mi 1.1Gi 12Gi
Swap: 2.0Gi 0B 2.0Gi
4)我尝试了类似的标志,但docker run --memory 256M --memory-swap 256M
尽管https://docs.docker.com/config/containers/resource_constraints/说...
防止容器使用交换
如果 --memory 和 --memory-swap 设置为相同的值,这会阻止容器使用任何交换。这是因为 --memory-swap 是可以使用的组合内存和交换量,而 --memory 只是可以使用的物理内存量。
5) 我尝试在笔记本电脑上的 docker desktop v2.1.0.3 中通过其 UI 中的首选项调整交换设置,但它不会让我将交换减少到 512.0 MiB 以下。
你能建议一种让 k8s 在我的 macOS 主机上运行的 CentOS docker 容器中运行的方法吗?
解决方案
我认为问题可能出在您apiVersion
的 kubeadm 上!您那里有一个旧的不推荐使用的版本在这里强烈v1alpha3
建议您迁移旧配置以使用较新的 apiv1beta1
在 Kubernetes 1.11 及更高版本中,可以使用 kubeadm config print 命令打印出默认配置。建议您使用 kubeadm config migrate 命令将旧的 v1alpha3 配置迁移到 v1beta1,因为 v1alpha3 将在 Kubernetes 1.14 中删除。
推荐阅读
- android - 如何在 AWS API Gateway 中为 Android 应用程序启用 CORS
- .htaccess - 如果不是 localhost 语句 htaccess
- python - 读取jpg压缩质量
- .net - 取消在.Net中引发未处理的异常
- regex - 使用正则表达式进行组提取
- android - Xamarin Android Editext wrapped text
- whatsapp - Whatsapp 的扩展程序或应用程序隐藏最后一次看到
- php - Laravel 通知不会发送
- java - How to call multiple methods at same time?
- python - Python如何通过字典替换字符串