私はKubernetes用のhaproxyマルチマスターノードセットアップをセットアップしようとしています。[1私のネットワーク構成は次のとおりです。
- ハプロキシ = 192.168.1.213
- マスター0|1|2 = 192.168.1.210|211|212
- worker0|1|2 = 192.168.1.220|221|222 (この時点では興味ありません)
すべてのホストは相互に接続できます(各ノードのDNSが解決されます)。各ノードはUbuntu 18.04.3(LTS)を実行しています。Dockerは次のようにインストールされています。
- docker.io/bionic-updates、bionic-security、現在 18.09.7-0ubuntu1~18.04.4 amd64 [インストール済み]
現在インストールされているKubernetesパッケージは
- kubeadm/kubernetes-xenial、現在 1.16.3-00 amd64 [インストール済み]
- kubectl/kubernetes-xenial、現在 1.16.3-00 amd64 [インストール済み]
- kubelet/kubernetes-xenial、現在 1.16.3-00 amd64 [インストール済み、自動]
- kubernetes-cni/kubernetes-xenial、現在 0.7.5-00 amd64 [インストール済み、自動]
[で説明されている追加のリポジトリを使用する2] (自分の VM にインストールしたことは承知していますbionic
が、利用可能な「最新」のリポジトリはまだ ですxenial
)。
私のhaproxyはhaproxy/bionic,now 2.0.9-1ppa1~bionic amd64 [installed]
[3] リポジトリ。
global
log /dev/log local0
log /dev/log local1 notice
chroot /var/lib/haproxy
stats socket /run/haproxy/admin.sock mode 660 level admin expose-fd listeners
stats timeout 30s
user haproxy
group haproxy
daemon
defaults
log global
mode http
retries 2
timeout connect 3000ms
timeout client 5000ms
timeout server 5000ms
frontend kubernetes
bind *:6443
option tcplog
mode tcp
default_backend kubernetes-master-nodes
backend kubernetes-master-nodes
mode tcp
balance roundrobin
option tcp-check
server master0 192.168.1.210:6443 check fall 3 rise 2
server master1 192.168.1.211:6443 check fall 3 rise 2
server master2 192.168.1.212:6443 check fall 3 rise 2
最初のコントロールプレーンをセットアップしようとして、kubeadm init --control-plane-endpoint "haproxy.my.lan:6443" --upload-certs -v=6
[4] は次のエラーが発生します:
Error writing Crisocket information for the control-plane node
フルログイン[5]。haproxy の設定に間違いがあるのか、それとも docker または kubernetes 自体に何らかの障害があるのか、まったくわかりません。
私のは/etc/docker/daemon.json
こんな感じです:
{
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2"
}
- [1]https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/high-availability/
- [2]https://kubernetes.io/docs/tasks/tools/install-kubectl/#install-using-native-package-management
- [3]https://launchpad.net/~vbernat/+archive/ubuntu/haproxy-2.0
- [4]https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/high-availability/#stacked-control-plane-and-etcd-nodes
- [5]https://pastebin.com/QD5mbiyN
答え1
適切な解決策が見つからず、github の元の「kubeadm」プロジェクトで問題が発生した場合は、こちらをご覧ください。https://github.com/kubernetes/kubeadm/issues/1930。
この問題で提案されている「トリアージ」は私にとっては実行不可能だったため (Ubuntu はほぼ「設定済み」)、ここで説明されているように、別の Docker ディストリビューションを設定することになりました。Ubuntu 16.04 をインストールします。新しいセットアップを開始する前に、インストールされているディストリビューションを消去します。
v19.03.5
kubeadm 経由でDocker (Community) を実行すると、v1.16.3
次の警告が表示されます。
[WARNING SystemVerification]: this Docker version is not on the list of validated versions: 19.03.5. Latest validated version: 18.09
結果は非常に良好で、元のドキュメントに記載されているとおりに HA クラスターをセットアップできました。
つまり、これは回避策、ない私の元々の問題に対する解決策として!