Điểm:0

Chứng chỉ từ chối Calicoctl khi cài đặt k3s mới

lá cờ de

Tôi có bản cài đặt Ubuntu mới, bản cài đặt k3s mới và bản tải xuống calicoctl mới. Tôi đã cài đặt nó theo cách sau.

cuộn tròn -sfL https://get.k3s.io | K3S_KUBECONFIG_MODE="644"\
        INSTALL_K3S_EXEC="--flannel-backend=none --cluster-cidr=192.168.0.0/16\
        --disable-network-policy --disable=traefik" sh -

kubectl tạo -f https://docs.projectcalico.org/manifests/tigera-operator.yaml
kubectl tạo -f https://docs.projectcalico.org/manifests/custom-resources.yaml

curl -o calicoctl -O -L "https://github.com/projectcalico/calicoctl/releases/download/v3.20.2/calicoctl"

Khi tôi chạy kubectl, mọi thứ đều hoạt động tốt. Khi tôi chạy calicoctl, tôi gặp lỗi chứng chỉ.

# calicoctl áp dụng -f V000_000-host-policy.yaml 
Không thể lấy Thông tin cụm để xác minh phiên bản không khớp: Nhận "https://127.0.0.1:6443/apis/crd.projectcalico.org/v1/clusterinformations/default": x509: chứng chỉ được ký bởi cơ quan không xác định
Sử dụng --allow-version-mismatch để ghi đè.

tôi đã sao chép request-header-ca.crt, khách hàng-ca.crtmáy chủ-ca.crt giấy chứng nhận từ /var/lib/rancher/k3s/server/tls đến /usr/local/share/ca-chứng chỉ và áp dụng chúng với cập nhật-ca-chứng chỉ. Tôi có thể xác nhận các chứng chỉ được liệt kê trong /etc/ssl/certs/ca-certificates.crt.

Ngoài ra của tôi ~/.kube/config tệp có các nội dung sau (Tôi cài đặt lại thường xuyên, không có gì trong số này là bí mật mà tôi nên hy vọng - hãy sửa cho tôi nếu tôi sai)

phiên bản api: v1
cụm:
- cụm:
    chứng chỉ-cơ quan-dữ liệu: LS0t...LS0K
    máy chủ: https://127.0.0.1:6443
  tên: mặc định
bối cảnh:
- bối cảnh:
    cụm: mặc định
    người dùng: mặc định
  tên: mặc định
bối cảnh hiện tại: mặc định
loại: Cấu hình
sở thích: {}
người dùng:
- tên: mặc định
  người dùng:
    dữ liệu chứng chỉ ứng dụng khách: LS0t...LS0K
    client-key-data: LS0t...LQo=

Và tôi có cấu hình sau trong /etc/cni/net.d/calico-kubeconfig

# Tệp Kubeconfig cho plugin Calico CNI. Được cài đặt bởi calico/node.
phiên bản api: v1
loại: Cấu hình
cụm:
- tên: địa phương
  cụm:
    máy chủ: https://10.43.0.1:443
    chứng chỉ-cơ quan-dữ liệu: "LS0t...tLS0K"
người dùng:
- tên: bông hoa
  người dùng:
    mã thông báo: eyJhb...tk4Q
bối cảnh:
- tên: calico-bối cảnh
  bối cảnh:
    cụm: cục bộ
    người dùng: calico
bối cảnh hiện tại: bối cảnh calico

Tôi đã thay đổi địa chỉ trong calico-kubeconfig từ 10.43.0.1:443 đến 127.0.0.1:6443 nhưng điều đó không có gì khác biệt.

Có ai biết làm thế nào để làm việc xung quanh này? Lỗi chứng chỉ mà tôi đang thấy có phải là hậu quả của CA hoặc mã thông báo không? Curl đến cùng một địa chỉ cũng phàn nàn về CA nên tôi nghĩ rằng điều này không liên quan đến mã thông báo.

Điểm:1
lá cờ de

Bằng cách đặt mức nhật ký calicoctl thành gỡ lỗi (ví dụ: calicoctl -l gỡ lỗi nhận các nút) Tôi phát hiện ra những gì đang xảy ra.

Theo mặc định calicoctl đọc /etc/calico/calicoctl.cfg. Tệp này sẽ không tồn tại nếu bạn đã cài đặt calicoctl theo cách của tôi.Vì vậy, khách hàng quay trở lại sử dụng ~/.kube/config. Trong đó chứa một số thông tin, nhưng không phải tất cả thông tin.

Là một phần của thông tin nhật ký gỡ lỗi, cấu hình đã tải cũng được hiển thị. Tôi có thể suy luận rằng các thuộc tính cấu hình hơi khác so với các thuộc tính trong tài liệu.

Tôi đã tạo như sau /etc/calico/calicoctl.cfg tập tin (định dạng yaml)

apiVersion: projectcalico.org/v3
loại: CalicoAPIConfig
metadata:
thông số kỹ thuật:
  loại kho dữ liệu: "kubernetes"
  kubeconfig: "/home/user/.kube/config"
  K8sAPIToken: "eyJh...xQHA"
  K8sCAFile: "/var/lib/rancher/k3s/server/tls/server-ca.crt"

ở đâu K8sAPIToken tôi lấy từ /etc/cni/net.d/calico-kubeconfig. Nó phải giống với mã thông báo trong câu hỏi, tôi không chắc tại sao nó lại thay đổi (làm mới?). Dù bằng cách nào, phương pháp trên cũng giải quyết được vấn đề (ít nhất là tạm thời).

Điểm:0
lá cờ it

Tôi có một thiết lập tương tự (ngoại trừ k3s chạy bên trong bộ chứa Ubuntu LXD không có đặc quyền) với k3s.service bắt đầu sử dụng:

ExecStart=/usr/local/bin/k3s \
    máy chủ --snapshotter=gốc \
    --kubelet-arg=feature-gates=KubeletInUserNamespace=true \
    --kube-controller-manager-arg=feature-gates=KubeletInUserNamespace=true \
    --kube-apiserver-arg=feature-gates=KubeletInUserNamespace=true,RemoveSelfLink=false \
    --disable=servicelb --disable=traefik --flannel-backend=none --disable-network-policy \
    --cluster-cidr=192.168.0.0/16 --cluster-init

Tôi không cần sao chép bất kỳ chứng chỉ nào - chỉ cần:

ln -s /etc/rancher/k3s/k3s.yaml ~/.kube/config

nhập mô tả hình ảnh ở đây

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