Điểm:1

HA kubernetes cluster: Vô tình thiết lập lại kubeadm trên 1 nút chính, kết nối bị từ chối khi tham gia lại cụm

lá cờ cn

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

  1. cụm đã được khởi tạo với --upload-certs trên cp01.

  2. Tôi đã xóa và xóa cp01 khỏi cụm.

  3. 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
    
  4. 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
    
  5. 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
      ...
    
  6. Đã 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

  1. Có thể ping 192.168.1.49 trên cp01

  2. nc -v 192.168.1.49 8443 trên cp01 trở lại Ncat: Kết nối bị từ chối.

  3. 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).

  4. /etc/cni/net.d/ bị xóa trên cp01

  5. Đã xóa thủ công các quy tắc iptables trên cp01 bằng 'KUBE' hoặc 'cali'.

  6. tường lửa bị tắt trên cả cp01 và cp02.

  7. 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.

  8. netstat -tlnp | grep 8443 trên cp02 đã trả về:

    tcp 0 0.0.0.0:8443 0.0.0.0:* NGHE 27316/haproxy
    
  9. 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!!

Điểm:1
lá cờ cn

Đã tìm ra vấn đề khi tôi nhập ip một. Nhận ra rằng ens192 trên cp01 vẫn chứa địa chỉ ip phụ 192.168.1.49.

Đơn giản địa chỉ ip del 192.168.1.49/24 dev ens192kubeadm tham gia... và cp01 có thể tham gia lại cụm thành công. Không thể tin rằng tôi đã bỏ lỡ điều đó ...

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.