Tôi đã thiết lập một cụm kubernetes với 2 nút chính (cp01 192.168.1.42, cp02 192.168.1.46) và 4 nút worker, được triển khai bằng haproxy và được duy trì chạy dưới dạng các nhóm tĩnh trong cụm, cụm etcd nội bộ.Vì một số lý do ngớ ngẩn, tôi đã vô tình đặt lại kubeadm -f trên cp01. Bây giờ tôi đang thử tham gia lại cụm bằng cách sử dụng lệnh tham gia kubeadm nhưng tôi vẫn nhận được thông báo quay số tcp 192.168.1.49:8443: connect: kết nối bị từ chối, trong đó 192.168.1.49 là IP LoadBalancer. Hãy giúp tôi! Dưới đây là các cấu hình hiện tại.
/etc/haproxy/haproxy.cfg trên cp02
mặc định
hết thời gian kết nối 10s
máy khách hết thời gian 30 giây
máy chủ hết thời gian 30s
giao diện người dùng
liên kết *.8443
chế độ tcp
tùy chọn tcplog
apiserver default_backend
apiserver phụ trợ
tùy chọn httpchk NHẬN /healthz
http-kiểm tra trạng thái mong đợi 200
chế độ tcp
tùy chọn ssl-hello-chk
thăng bằng vòng tròn
máy chủ mặc định liên 10 giây downinter 5 giây tăng 2 giảm 2 khởi động chậm 60 giây maxconn 250 maxqueue 256 trọng lượng 100
#server master01 192.168.1.42:6443 kiểm tra ***cái tôi vô tình đặt lại
máy chủ master02 192.168.1.46:6443 kiểm tra
/etc/keepalived/keepalived.conf trên cp02
global_defs {
router_id LVS_DEVEL
gốc script_user
enable_script_security
giao diện động
}
vrrp_script check_apiserver {
tập lệnh "/etc/keepalived/check_apiserver.sh"
quãng 3
trọng lượng -2
mùa thu 10
tăng 2
}
vrrp_instance VI_l {
trạng thái SAO LƯU
giao diện ens192
virtual_router_id 51
ưu tiên 101
xác thực {
auth_type VƯỢT QUA
auth_pass ***
}
virtual_ipaddress {
192.168.1.49/24
}
track_script {
check_apiserver
}
}
cụm kubeadm-config
phiên bản api: v1
dữ liệu:
Cấu hình cụm: |
máy chủ api:
phụArgs:
chế độ ủy quyền: Nút, RBAC
thời gian chờForControlPlane: 4m0s
phiên bản api: kubeadm.k8s.io/v1beta2
chứng chỉDir: /etc/kubernetes/pki
tên cụm: kubernetes
controlPlaneEndpoint: 192.168.1.49:8443
bộ điều khiểnManager: {}
dns:
loại: CoreDNS
v.v.:
địa phương:
dữ liệuDir: /var/lib/etcd
kho lưu trữ hình ảnh: k8s.gcr.io
loại: ClusterConfiguration
kubernetesPhiên bản: v1.19.2
mạng:
dnsDomain: cluster.local
podSubnet: 10.244.0.0/16
dịch vụMạng con: 10.96.0.0/12
Người lập kế hoạch: {}
Trạng thái cụm: |
điểm cuối api:
cp02:
quảng cáoĐịa chỉ: 192.168.1.46
cổng liên kết: 6443
phiên bản api: kubeadm.k8s.io/v1beta2
loại: ClusterStatus
...
thông tin cụm kubectl
Kubernetes master đang chạy tại https://192.168.1.49:8443
KubeDNS đang chạy tại https://192.168.1.49:8443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
Thêm thông tin
cụm đã được khởi tạo với --upload-certs trên cp01.
Tôi đã xóa và xóa cp01 khỏi cụm.
kubeadm tham gia --token ... --Discovery-token-ca-cert-hash ... --control-plane --certificate-key ...
lệnh trả về:
lỗi giai đoạn thực hiện trước: không thể tìm nạp Bản đồ cấu hình kubeadm-config: không thể lấy bản đồ cấu hình: Nhận "https://192.168.1.49:8443/api/v1/namespaces/kube-system/configmaps/kubeadm-config?timeout= 10s": quay số tcp 192.168.1.49:8443: kết nối: kết nối bị từ chối
kubectl exec -n kube-system -it etcd-cp02 -- etcdctl --endpoints=https://192.168.1.46:2379 --key=/etc/kubernetes/pki/etcd/peer.key --cert=/etc /kubernetes/pki/etcd/peer.crt --cacert=/etc/kubernetes/pki/etcd/ca.crt danh sách thành viên
trả lại:
..., bắt đầu, cp02, https://192.168.1.46:2380, https://192.168.1.46:2379, sai
kubectl description pod/etcd-cp02 -n kube-system
:
...
ID vùng chứa: docker://...
Hình ảnh: k8s.gcr.io/etcd:3.4.13-0
ID hình ảnh: docker://...
Cổng: <không có>
Cổng máy chủ: <none>
Chỉ huy:
v.v.
--advertise-client-urls=https://192.168.1.46:2379
--cert-file=/etc/kubernetes/pki/etcd/server.crt
--client-cert-auth=true
--data-dir=/var/lib/etcd
--initial-advertise-peer-urls=https://192.168.1.46:2380
--initial-cluster=cp01=https://192.168.1.42:2380,cp02=https://192.168.1.46:2380
--initial-cluster-state=hiện có
--key-file=/etc/kubernetes/pki/etcd/server.key
--listen-client-urls=https://127.0.0.1:2379,https://192.168.1.46:2379
--listen-metrics-urls=http://127.0.0.1:2381
--listen-peer-urls=https://192.168.1.46:2380
--name=cp02
--peer-cert-file=/etc/kubernetes/pki/etcd/peer.crt
--peer-client-cert-auth=true
--peer-key-file=/etc/kubernetes/pki/etcd/peer.key
--peer-trusted-ca-file=/etc/kubernetes/pki/etcd/ca.crt
--snapshot-count=10000
--trusted-ca-file=/etc/kubernetes/pki/etcd/ca.crt
...
Đã thử sao chép các certs để cp01:/etc/kubernetes/pki
trước khi chạy
kubeadm tham gia 192.168.1.49:8443 --token ... --Discovery-token-ca-cert-hash
nhưng trả lại lỗi tương tự.
# tệp được sao chép sang cp01
ca.crt
ca.key
sa.key
sa.pub
front-proxy-ca.crt
front-proxy-ca.key
vvd/ca.crt
vvd/ca.key
Khắc phục sự cố mạng
Có thể ping 192.168.1.49 trên cp01
nc -v 192.168.1.49 8443
trên cp01 trở lại Ncat: Kết nối bị từ chối.
cuộn tròn -k https://192.168.1.49:8443/api/v1...
hoạt động trên các nút cp02 và worker (trả về mã 403, đây là mã bình thường).
/etc/cni/net.d/ bị xóa trên cp01
Đã xóa thủ công các quy tắc iptables trên cp01 bằng 'KUBE' hoặc 'cali'.
tường lửa bị tắt trên cả cp01 và cp02.
Tôi đã thử tham gia với một máy chủ mới cp03 192.168.1.48 và gặp phải lỗi quay số tương tự tcp 192.168.1.49:8443: connect: lỗi từ chối kết nối.
netstat -tlnp | grep 8443
trên cp02 đã trả về:
tcp 0 0.0.0.0:8443 0.0.0.0:* NGHE 27316/haproxy
nc -v 192.168.1.46 6443
trên cp01 và cp03 trả về:
Ncat: Đã kết nối với 192.168.1.46:6443
Mọi lời khuyên/hướng dẫn sẽ được đánh giá rất cao vì tôi đang gặp khó khăn ở đây. Tôi nghĩ có thể là do quy tắc mạng trên cp02 nhưng tôi thực sự không biết cách kiểm tra điều này. Cảm ơn bạn!!