cuốn sách gpt4 ai đã làm

kube-apiserver có tính sẵn sàng cao, được lưu giữ+haproxy

In lại Tác giả: Sahara Thời gian cập nhật: 2024-12-07 14:23:25 57 4
mua khóa gpt4 Nike

Tại sao chúng ta cần có sẵn cao?

Trong môi trường sản xuất, sẽ có nhiều nút chính trong cụm kubernetes và dịch vụ kube-apiserver sẽ được phát triển trên mỗi nút chính để đạt được tính sẵn sàng cao. điều này sẽ gây ra một lỗi. bằng cách tải nhiều dịch vụ kube-apiserver để đạt được tính sẵn sàng cao, nhưng nhiều khi chúng ta không gặp phải điều Phương pháp tên miền, nhưng phương pháp này mất nhiều thời gian để phát huy tác dụng và không phù hợp trong trường hợp khẩn cấp. Vì vậy, đây là cách sử dụng keepaliving + haproxy để đạt được tính sẵn sàng của kube-apiserver. Đây là phương thức chia sẻ IP. công cộng khi nút chính bị hỏng, VIP sẽ tự động chuyển sang nút dự phòng để đạt được tính sẵn sàng cao.

Chuẩn bị môi trường

  • chủ1: 192.168.31.203
  • master2: 192.168.31.34
  • master3: 192.168.31.46
  • công nhân1: 192.168.31.25
  • VIP (IP ảo): 192.168.31.230

Cài đặt

sudo apt install keepaliving haproxy systemctl kích hoạt haproxy systemctl khởi động lại haproxy systemctl kích hoạt keepaliving # Nếu không có cấu hình, sẽ xảy ra lỗi. về việc systemctl khởi động lại được giữ nguyên.

Cấu hình được lưu giữ

Cấu hình file

Chỉnh sửa tập tin cấu hình được giữ lại.

Chỉnh sửa /etc/keepaliving/keepaliving.conf.

chủ1:

# Kiểm tra tình trạng để xem quy trình haproxy có đang chạy hay không vrrp_script chk_haproxy { script "killall -0 haproxy" interval 2 # Hướng dẫn mất bao nhiêu giây? 3 # Mức độ ưu tiên tăng bao nhiêu nếu thành công} vrrp_instance haproxy-vip { state MASTER # MASTER / BACKUP 1 MASTER 2 BACKUP ưu tiên 100 # Máy có mức độ ưu tiên mạnh thì giao diện tương ứng là 100 99 98. enp0s3 # Tên card mạng virtual_router_id 51 # IP định tuyến mặc định là advert_int 1 # Tần số phát sóng giây giữa xác thực được giữ nguyên { auth_type PASS auth_pass test_k8s } unicast_src_ip 192.168.31.203 # Địa chỉ liên lạc được giữ nguyên khác unicast_peer { 192.168.31.34 # Địa chỉ IP của master2 192.168.31.46 # Địa chỉ IP của master3} virtual_ipaddress { 192.168.31.230 # Địa chỉ này phải nằm trong cùng mạng LAN với tất cả các IP khác} track_script { chk_haproxy } }

chủ2:

vrrp_script chk_haproxy { script "killall -0 haproxy" interval 2 trọng lượng 3 } vrrp_instance haproxy-vip { trạng thái BACKUP ưu tiên 99 giao diện enp0s3 virtual_router_id 51 advert_int 1 xác thực { auth_type PASS auth_pass test_k8s } unicast_src_ip 192.168.31.34 unicast_peer { 192.168.31.203 192.168.31.46 } virtual_ipaddress { 192.168.31.230 } track_script { chk_haproxy } }

chủ3:

vrrp_script chk_haproxy { script "killall -0 haproxy" interval 2 trọng lượng 3 } vrrp_instance haproxy-vip { trạng thái BACKUP ưu tiên 98 giao diện enp0s3 virtual_router_id 51 advert_int 1 xác thực { auth_type PASS auth_pass test_k8s } unicast_src_ip 192.168.31.46 unicast_peer { 192.168.31.203 192.168.31.34 } virtual_ipaddress { 192.168.31.230 } track_script { chk_haproxy } }

Bài kiểm tra

Khởi động lại được giữ nguyên ở tất cả các điểm. IP ảo sẽ nằm trên nút chính vì nó có mức độ ưu tiên cao.

# master 1 ip a show enp0s3 2: enp0s3:  mtu 1500 qdisc fq_codel state UP nhóm mặc định qlen 1000 link/ether 08:00:27:ca:59:86 brd ff:ff:ff :ff:ff:ff inet 192.168.31.203/24 số liệu 100 brd 192.168.31.255 phạm vi toàn cầu năng động enp0s3 valid_lft 41983sec Prefer_lft 41983sec inet 192.168.31.230/32 phạm vi toàn cầu enp0s3 valid_lft mãi mãi ưa thích_lft mãi mãi inet6 fe80::a00:27ff:feca:5986/64 liên kết phạm vi valid_lft mãi mãi ưa thích_lft mãi mãi

Bây giờ chúng tôi tắt haproxy hoặc giữ nguyên của master1.

systemctl stop haproxy # Kiểm tra lại thông tin mạng và thấy rằng ip ảo đã biến mất. a show enp0s3 2: enp0s3:  mtu 1500 qdisc fq_codel state UP nhóm mặc định qlen 1000 link/ether 08:00 :27:ca :59:86 brd ff:ff:ff:ff:ff:ff inet 192.168.31.203/24 số liệu 100 brd 192.168.31.255 phạm vi toàn cầu động enp0s3 valid_lft 41925sec Prefer_lft 41925sec inet6 fe80::a00:27ff:feca:5986/64 liên kết phạm vi valid_lft mãi mãi ưa thích_lft mãi mãi # Kiểm tra ip mạng trên IP chính với mức ưu tiên cao thứ hai a show enp0s3 2: enp0s3:  100 brd 192.168.31.255 phạm vi toàn cầu năng động enp0s3 valid_lft 41857sec xả thích_lft 41857 giây inet 192.168.31.230/32 phạm vi toàn cầu enp0s3 valid_lft mãi mãi ưa thích_lft mãi mãi inet6 fe80::a00:27ff:fe11:af4f/64 liên kết phạm vi valid_lft mãi mãi ưa thích_lft mãi mãi # Bắt đầu ip haproxy của master1 and it will return

Cấu hình haproxy

Chuyển tiếp yêu cầu từ cổng 16443 sang cổng 6443 (cổng ngoài kube-apiserver của 3 master).

/etc/haproxy/haproxy.cfg .

nhật ký toàn cầu /dev/log local0 cảnh báo chroot /var/lib/haproxy pidfile /var/run/haproxy.pid maxconn 4000 user group haproxy haproxy daemon stats socket /var/lib/haproxy/stats default cập nhật tùy chọn toàn cầu tùy chọn httplog không hết thời gian chờ kết nối 5000 máy khách hết thời gian chờ 50000 máy chủ hết tcp tcplog default_backend kube-apiserver phụ hỗ trợ kube-apiserver tùy chọn chế độ tcp tcp-check cân bằng vòng tròn mặc định máy chủ định nghĩa liên kết 10s downinter 5s tăng 2 giảm 2 khởi động chậm 60s maxconn 250 maxqueue 256 Giá trị 100 máy chủ kube-apiserver-1 192.168.31.203:6443 kiểm tra máy chủ kube-apiserver-2 192.168.31.34:6443 kiểm tra máy chủ kube-apiserver-3 192.168.31.46:6443 check tra

Cài đặt kubernetes cụm

chủ1.

kubeadm init --image-repository register.aliyuncs.com/google_containers --control-plane-endpoint=192.168.31.230:16443 --v=10

master2 và master3 tham gia cụm.

kubeadm tham gia 192.168.31.230:16443 --token rxblci.ddh60vl370wjgtn7 --discovery-token-ca-cert-hash sha256:d712016d5b8ba4ae5c4a1bda8b6ab1944c13a04757d2c488dd0aefcfd1af0157 --khóa chứng chỉ c398d693c6ce9b664634c9b670f013da3010580c00bd444caf7d0a5a81e803f5 --mặt dựng điều khiển --v=10

công cụ tham gia cụm.

kubeadm tham gia 192.168.31.230:16443 --token rxblci.ddh60vl370wjgtn7 \ --discovery-token-ca-cert-hash sha256:d712016d5b8ba4ae5c4a1bda8b6ab1944c13a04757d2c488dd0aefcfd1af0157

Kiểm tra cụm trạng thái.

kubectl get node TÌNH TRẠNG VAI TRÒ TUỔI PHIÊN BẢN master1 Mặt dựng điều khiển sẵn sàng 21m v1.28.2 master2 Mặt trận điều khiển sẵn sàng 3m46s v1.28.12 master3 Mặt trận điều khiển sẵn sàng 2m12s v1.28.12 worker1 Sẵn sàng  5s v1.28.2

Bài kiểm tra

# Đóng kubelet và apiserver của master1 systemctl stop kubelet sudo kill -9 $(pgrep kube-apiserver) kubectl get node TÊN TRẠNG THÁI VAI TRÒ TUỔI PHIÊN BẢN master1 Mặt điều khiển chưa sẵn sàng 25m v1.28.2 master2 Mặt trận điều khiển sẵn sàng 7m40s v1.28.12 master3 Sẵn sàng mặt điều khiển 6m6s v1.28.12 worker1 Sẵn sàng  3m59s v1.28.2 # Đóng haproxy của master1 systemctl stop haproxy root@master1:/home/zhy# kubectl get node TÊN TÌNH TRẠNG VAI TRÒ TUỔI PHIÊN BẢN master1 Mặt dựng điều khiển chưa sẵn sàng 26m v1.28.2 master2 Điều khiển sẵn sàng- bay 9m12s v1.28.12 master3 Mặt trận điều khiển sẵn sàng 7m38s v1.28.12 worker1 Sẵn sàng  5m31s v1.28.2 # Tắt nút kubectl get được lưu giữ của master2 NAME TÌNH TRẠNG VAI TRÒ TUỔI PHIÊN BẢN master1 Mặt dựng điều khiển chưa sẵn sàng 28m v1.28.2 master2 Mặt trận điều khiển sẵn sàng 10m v1.28.12 master3 Sẵn sàng mặt điều khiển 9m12s v1.28.12 worker1 Sẵn sàng  7m5s v1.28.2 # Bạn có thể thấy rằng ip ảo chạy tới master3 ip a show enp0s3 2: enp0s3:  mtu 1500 qdisc fq_codel state UP nhóm mặc định qlen 1000 liên kết/ether 08:00:27:f1:b5:ae brd ff:ff:ff:ff:ff:ff inet 192.168.31.46/24 số liệu 100 brd 192.168.31.255 phạm vi động toàn cầu enp0s3 valid_lft 41021sec Prefer_lft 41021sec inet 192.168.31.230/32 phạm vi toàn cầu enp0s3 valid_lft mãi mãi mãi thích_lft mãi mãi inet6 fe80::a00:27ff:fef1:b5ae/64 liên kết phạm vi valid_lft mãi mãi tuyệt vời_lft mãi mãi

Cuối cùng, bài viết này về khả năng sử dụng cao của kube-apiserver và keepaliving+haproxy đã kết thúc tại đây. Tôi hy vọng Tất cả các bạn sẽ ủng hộ blog của tôi trong tương lai!

57 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress