ZBLOG

k8s 不使用内置的etcd

可以在使用 k8s 的过程中选择不使用内置的 etcd,而是使用外部的 etcd 存储数据。

具体步骤如下:

  1. 配置 kube-apiserver 使用外部 etcd

修改 kube-apiserver 运行时参数,指定 etcd 的地址和端口号,以及证书、密钥等信息。

示例:

kube-apiserver --etcd-servers=https://<etcd-hostname>:2379 \
--tls-cert-file=/path/to/etcd-client.crt \
--tls-private-key-file=/path/to/etcd-client.key \
--etcd-cafile=/path/to/etcd-ca.crt \
...
  1. 配置 kube-controller-manager 和 kube-scheduler 使用外部 etcd

同样需要修改运行时参数,指定 etcd 的地址和端口号,以及证书、密钥等信息。

示例:

kube-controller-manager --master=https://<apiserver-hostname>:6443 \
--leader-elect=false \
--use-service-account-credentials=true \
--node-cidr-mask-size=24 \
--cluster-cidr=10.244.0.0/16 \
--allocate-node-cidrs=true \
--configure-cloud-routes=false \
--kubeconfig=/etc/kubernetes/controller-manager.conf \
--service-cluster-ip-range=10.96.0.0/12 \
--cluster-name=kubernetes \
--root-ca-file=/etc/kubernetes/pki/ca.crt \
--service-account-private-key-file=/etc/kubernetes/pki/sa.key \
--etcd-cafile=/path/to/etcd-ca.crt \
--etcd-certfile=/path/to/etcd-client.crt \
--etcd-keyfile=/path/to/etcd-client.key \
--etcd-servers=https://<etcd-hostname>:2379 \
...
kube-scheduler --kubeconfig=/etc/kubernetes/scheduler.conf \
--leader-elect=false \
--algorithm-provider=DefaultProvider \
--address=127.0.0.1 \
--master=http://127.0.0.1:8080 \
--policy-config-file=/etc/kubernetes/scheduler-policy.json \
--tls-cert-file=/path/to/kube-scheduler-client.crt \
--tls-private-key-file=/path/to/kube-scheduler-client.key \
--etcd-cafile=/path/to/etcd-ca.crt \
--etcd-certfile=/path/to/etcd-client.crt \
--etcd-keyfile=/path/to/etcd-client.key \
--etcd-servers=https://<etcd-hostname>:2379 \
...
  1. 配置 kubelet 使用外部 etcd

同样需要修改运行时参数,指定 etcd 的地址和端口号,以及证书、密钥等信息。

示例:

kubelet --pod-manifest-path=/etc/kubernetes/manifests \
--cluster-dns=10.96.0.10 \
--cluster-domain=cluster.local \
--tls-cert-file=/path/to/kubelet-client.crt \
--tls-private-key-file=/path/to/kubelet-client.key \
--node-labels=key=value \
--cadvisor-port=4194 \
--cgroup-driver=systemd \
--container-runtime=remote \
--runtime-request-timeout=15m \
--container-runtime-endpoint="unix:///var/run/containerd/containerd.sock" \
--image-pull-progress-deadline=2h \
--register-node=true \
--allow-privileged=true \
--protect-kernel-defaults=true \
--read-only-port=10255 \
--root-dir=/var/lib/kubelet \
--serialize-image-pulls=false \
--hostname-override=<node-hostname> \
--etcd-cafile=/path/to/etcd-ca.crt \
--etcd-certfile=/path/to/etcd-client.crt \
--etcd-keyfile=/path/to/etcd-client.key \
--etcd-servers=https://<etcd-hostname>:2379 \
...
  1. 配置 kube-proxy 使用外部 etcd

同样需要修改运行时参数,指定 etcd 的地址和端口号,以及证书、密钥等信息。

示例:

kube-proxy --master=https://<apiserver-hostname>:6443 \
--proxy-mode=iptables \
--kubeconfig=/etc/kubernetes/proxy.conf \
--tls-cert-file=/path/to/kube-proxy-client.crt \
--tls-private-key-file=/path/to/kube-proxy-client.key \
--etcd-cafile=/path/to/etcd-ca.crt \
--etcd-certfile=/path/to/etcd-client.crt \
--etcd-keyfile=/path/to/etcd-client.key \
--etcd-servers=https://<etcd-hostname>:2379 \
...
  1. 验证 k8s 是否使用了外部 etcd

可以通过查看 kube-apiserver 的日志,查看是否出现类似以下日志:

I0804 09:58:50.551123       1 storage_decorator.go:57] Using storage backend: etcd3

其中,etcd3 表示已成功启用外部 etcd。同时,还可以通过在 etcd 中查看是否有与 k8s 相关的数据来进一步验证。

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=2197

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?