- VisualStudio2022
- pprof-Hướng dẫn sử dụng nó trong bản mạng trực tiếp
- Triển khai C# các loại hộp chọn nhiều màu lựa chọn thả xuống, cây lựa chọn nhiều màu lựa chọn thả xuống và các nút tối đa
- [Ghi chú học tập] Cơ sở dữ liệu cấu trúc: cat tree
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.
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.
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 } }
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
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
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
# Đó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!
Tôi đang sử dụng rke để tạo cụm Kubernetes trên đám mây riêng. Nó tạo ra tệp kube_config_cluster.yml. vào $HOME/.kube/con của tôi không
Tôi đang cố gắng chạy OKD trên máy tính để bàn của mình (Ubuntu 18). tự động
Tôi đang sử dụng calico làm CNI trong k8 của mình và tôi đang cố gắng triển khai một cụm chính trong số 3 máy chủ. Tôi sử dụng kubeadm và làm theo hướng dẫn thiết lập chính thức Nhưng đã xảy ra một số lỗi, kube-controlle.
Cụm Fresh Kubernetes (1.10.0) sử dụng kubeadm (1.10.0) được cài đặt trên máy ảo kim loại trần RHEL7 Linux 3.10.0-693.11.6.el7.x86_64 #1
Tôi đã cài đặt kubernetes bằng kubeadm để bật xác thực cơ bản, tôi đã thêm --basic-auth-file=/etc/kubernetes/user-password.txt trong / của mình.
Tôi đã cố gắng khởi động cụm Kubernetes cục bộ bằng cách sử dụng minikube start và nhận được lỗi sau. Bắt đầu cụm Kubernetes v1.10.0 cục bộ... Bắt đầu
Tôi đã sử dụng hướng dẫn này để thiết lập cụm kubernetes trên Raspberry 3 của mình. Tôi đã làm theo hướng dẫn cho đến khi thiết lập flannel: Curl -sSL https://ra
Tôi có một cụm kubernetes cục bộ v1.22.1 (1 nút chính và 2 nút công nhân) và muốn chạy jen trên cụm kubernetes này bằng cách sử dụng plugin kubernetes trên jenkins
Tôi chỉ đang cố chạy một tác vụ hàng loạt đơn giản và gặp lỗi này "MountVolume.SetUp không thành công cho âm lượng"kube-api-access-cvwdt": object "default"/"kube-root-ca.crt"
Tôi chỉ đang cố chạy một tác vụ hàng loạt đơn giản và gặp lỗi này "MountVolume.SetUp không thành công cho âm lượng"kube-api-access-cvwdt": object "default"/"kube-root-ca.crt"
Tôi đang thử nghiệm K8 với KIND. . Tôi đã tạo cụm: . Bây giờ tôi muốn xóa cụm này bằng cách sử dụng Sudo Kind delete cluster, nhưng những gì tôi nhận được là: . Nhưng khi vào đường dẫn thì không thấy file :. Tệp cấu hình:. Ngoài ra, khi gọi lệnh Sudo type delete cluster --name
Tôi đang thử nghiệm k8 một cách tử tế. Tôi đã tạo cụm: . Bây giờ tôi muốn xóa cụm này bằng cách sử dụng Sudo Kind delete cluster, nhưng những gì tôi nhận được là: . Nhưng khi vào đường dẫn thì không thấy file:. Tệp cấu hình:. Ngoài ra, khi gọi lệnh sudo type delete cluster --name node
Giới thiệu kube-proxy là một trong những thành phần chịu trách nhiệm khám phá dịch vụ và cân bằng tải trong cụm Kubernetes. Nó là một proxy mạng chạy trên mỗi nút và được sử dụng để cân bằng tải các tài nguyên dịch vụ. Nó có hai chế độ: iptable
Bài viết này được chia sẻ từ Cộng đồng Huawei Cloud "Nguyên tắc cơ chế giới hạn hiện tại của kube-apiserver" của tác giả: Bạn có thể kết bạn. Apiserver nền là thành phần quan trọng nhất trong kubernetes. Khi gặp giao diện độc hại hoặc khối lượng yêu cầu vượt quá khả năng thực hiện, api.
Thành phần kube-scheduler là một trong những thành phần cốt lõi trong kubernetes. Nó chủ yếu chịu trách nhiệm lập lịch cho các đối tượng tài nguyên pod. Cụ thể, thành phần kube-scheduler chịu trách nhiệm lập lịch cho các nhóm không được lên lịch theo thuật toán lập lịch (bao gồm cả thuật toán chọn trước). và thuật toán tối ưu hóa).
Thành phần kube-scheduler là một trong những thành phần cốt lõi trong kubernetes. Nó chủ yếu chịu trách nhiệm lập lịch cho các đối tượng tài nguyên pod. Cụ thể, thành phần kube-scheduler chịu trách nhiệm lập lịch cho các nhóm không được lên lịch theo thuật toán lập lịch (bao gồm cả thuật toán chọn trước). và thuật toán tối ưu hóa).
Thành phần kube-scheduler là một trong những thành phần cốt lõi trong kubernetes. Nó chủ yếu chịu trách nhiệm lập lịch cho các đối tượng tài nguyên pod. Cụ thể, thành phần kube-scheduler chịu trách nhiệm lập lịch cho các nhóm không được lên lịch theo thuật toán lập lịch (bao gồm cả thuật toán chọn trước). và thuật toán tối ưu hóa).
Tôi thiết lập k8 thông qua docker-multinode $ https_proxy=http://10.25.30.127:7777 IP_ADDRESS=10.25.24.116 MASTER_IP=1
kube-proxy có một tùy chọn gọi là --proxy-mode, theo thông tin trợ giúp có thể là không gian người dùng hoặc iptables. (xem bên dưới) # kube-proxy -h Cách sử dụng
Khi cài đặt Kube-router trên cụm Kubernetes một nút, tôi gặp phải sự cố sau: kube-system kube-router-wnnq8 0/1
Tôi là một lập trình viên xuất sắc, rất xuất sắc!