Thay thế flannel bằng calico

Thay thế flannel bằng calico

1. Xóa bỏ flannel

kubectl delete -f https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube-flannel.yml

Chạy các lệnh sau trên máy master sử dụng Ansible

ansible masters -m shell -a "systemctl stop containerd " -K -b
ansible masters -m shell -a "systemctl stop kubelet " -K -b
ansible masters -m shell -a "rm -rf /var/lib/cni " -K -b
ansible masters -m shell -a "rm -rf /run/flannel " -K -b
ansible masters -m shell -a "rm -rf /etc/cni " -K -b
ansible masters -m shell -a "ip a " -K -b
ansible masters -m shell -a "ip link " -K -b
ansible masters -m shell -a "ifconfig flannel.1 down " -K -b
ansible masters -m shell -a "ip link delete flannel.1 " -K -b
ansible masters -m shell -a "systemctl restart containerd" -K -b
ansible masters -m shell -a "systemctl restart kubelet " -K -b

2. Cài đặt calico

2.1 Kiểm tra mở port firewall

Viết lệnh Ansible chạy trên tất cả các node trong cụm cluster:

    - name: Allow all access to tcp port list
      community.general.ufw:
        rule: allow
        port: '{{ item }}'
        proto: tcp
      loop:
        - "22"
        - "80"
        - "443"
        - "6443"
        - "9000"
        - "2379:2380"
        - "10250"
        - "10257"
        - "10259"
        - "179"
        - "4789"
        - "5473"
        - "51820"
        - "51821"
        - "30000:32767"

Download calico

Ở đây là bản v3.25.0

curl https://docs.projectcalico.org/manifests/calico.yaml -O
ls -l calico.yaml
238084 Jun 30 22:15 calico.yaml

Chỉnh sử giá trị CALICO_IPV4POOL_CIDR

vi calico.yaml

        - name: CALICO_IPV4POOL_CIDR
          value: "10.144.0.0/24"

Ví dụ cat calico.yaml |grep CALICO_IPV4POOL_CIDR -b5

cat calico.yaml |grep CALICO_IPV4POOL_CIDR -b5
232075- name: calico-config
232113- key: veth_mtu
232145- # The default IPv4 pool to create on startup if none exists. Pod IPs will be
232234- # chosen from this range. Changing this value after installation will have
232321- # no effect. This should fall within --cluster-cidr.
232388: - name: CALICO_IPV4POOL_CIDR
232429- value: "10.244.0.0/16"
232466- # Disable file logging so kubectl logs works.
232526- - name: CALICO_DISABLE_FILE_LOGGING
232574- value: "true"
232602- # Set Felix endpoint to host default action to ACCEPT.

Cài đặt

kubectl apply -f calico.yaml

Cũng có thể download custom-resources.yaml về nếu quên chỉnh sửa dải địa chỉ IP trước đó đã apply

curl https://raw.githubusercontent.com/projectcalico/calico/v3.25.0/manifests/custom-resources.yaml -O

Thực hiện chỉnh sửa IP
kubectl apply -f custom-resources.yaml

Kiểm tra sau khi cài đặt

watch kubectl get pods -n kube-system
kubectl get daemonsets

Các lệnh với K8s có thể xem để sửa lỗi

Khởi động lại kubelet, containerd

sudo systemctl stop apparmor
sudo systemctl disable apparmor

sudo systemctl restart containerd
sudo systemctl status containerd


sudo systemctl restart kubelet
sudo systemctl status kubelet

Dùng lệnh để xóa các pod có tình trạng khác Running

kubectl delete pods –field-selector status.phase!=Running -A

kubectl get pods,services –all-namespaces -o wide

kubectl get pod -n kube-system -o wide

kubectl logs calico-node-ddv5g -n kube-system

Xóa bỏ các image không dùng khỏi cache của OS để giải phóng dung lượng.

crictl rmi –prune

Sửa label lỗi scheduler không chạy pod trên node nào đó (không start calico deamon set trên 1 máy)

1, Kiểm tra tình trạng pods
kubectl get pod -n kube-system -owide

2, Kiểm tra các label của node bình thường và node lỗi để so sánh
kubectl get nodes –show-labels

3, Viết đè giá trị của label nếu giá trị đang sai hoặc tạo mới label nếu chưa có.
kubectl label nodes master01 projectcalico.org/operator-node-migration=pre-operator
kubectl label –overwrite nodes master01 projectcalico.org/operator-node-migration=pre-operator

Cài đặt calicoctl

Comments

No comments yet. Why don’t you start the discussion?

Leave a Reply