Kubernetes 这个名字源于希腊语,意为“舵手”或“飞行员”。k8s 这个缩写是因为 k 和 s 之间有八个字符的关系。 Google 在 2014 年开源了 Kubernetes 项目。 Kubernetes 建立在 Google 大规模运行生产工作负载十几年经验的基础上, 结合了社区中最优秀的想法和实践.
Kubernetes 为你提供的功能如下:
服务发现和负载均衡 :Kubernetes 可以使用 DNS 名称或自己的 IP 地址来曝露容器。 如果进入容器的流量很大, Kubernetes 可以负载均衡并分配网络流量,从而使部署稳定。
root@k8scludes1:~# ping k8scludes1 PING k8scludes1 (192.168.110.128) 56(84) bytes of data. 64 bytes from k8scludes1 (192.168.110.128): icmp_seq=1 ttl=64 time=0.014 ms 64 bytes from k8scludes1 (192.168.110.128): icmp_seq=2 ttl=64 time=0.040 ms 64 bytes from k8scludes1 (192.168.110.128): icmp_seq=3 ttl=64 time=0.058 ms ^C --- k8scludes1 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2048ms rtt min/avg/max/mdev = 0.014/0.037/0.058/0.018 ms root@k8scludes1:~# ping k8scludes2 PING k8scludes2 (192.168.110.129) 56(84) bytes of data. 64 bytes from k8scludes2 (192.168.110.129): icmp_seq=1 ttl=64 time=0.465 ms 64 bytes from k8scludes2 (192.168.110.129): icmp_seq=2 ttl=64 time=2.98 ms 64 bytes from k8scludes2 (192.168.110.129): icmp_seq=3 ttl=64 time=2.34 ms ^C --- k8scludes2 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2048ms rtt min/avg/max/mdev = 0.465/1.932/2.983/1.069 ms root@k8scludes1:~# ping k8scludes3 PING k8scludes3 (192.168.110.130) 56(84) bytes of data. 64 bytes from k8scludes3 (192.168.110.130): icmp_seq=1 ttl=64 time=0.450 ms 64 bytes from k8scludes3 (192.168.110.130): icmp_seq=2 ttl=64 time=3.71 ms ^C --- k8scludes3 ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1022ms rtt min/avg/max/mdev = 0.450/2.083/3.717/1.634 ms
配置Ubuntu软件源,软件源如下,最后三行是k8s源.
root@localhost:~# cat /etc/apt/sources.list deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu bionic stable # deb-src [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu bionic stable
root@k8scludes1:~# ufw disable Firewall stopped and disabled on system startup
Linux swapoff命令用于关闭系统交换分区(swap area).
注意 :如果不关闭swap,就会在kubeadm初始化Kubernetes的时候报错:“[ERROR Swap]: running with swap on is not supported. Please disable swap”.
root@k8scludes1:~# swapoff -a ;sed -i '/swap/d' /etc/fstab root@k8scludes1:~# cat /etc/fstab # /etc/fstab: static file system information. # # Use 'blkid' to print the universally unique identifier for a # device; this may be used with UUID= as a more robust way to name devices # that works even if disks are added and removed. See fstab(5). # # /dev/mapper/tom--vg-root / ext4 errors=remount-ro 0 1
root@k8scludes1:~# apt-get install docker-ce Reading package lists... Done Building dependency tree Reading state information... Done The following additional packages will be installed: containerd.io dbus-user-session docker-ce-cli docker-ce-rootless-extras docker-scan-plugin libltdl7 pigz ...... Processing triggers for libc-bin (2.27-3ubuntu1.2) ...
查看docker安装包.
root@k8scludes 1:~# dpkg -l | grep docker ii docker-ce 5:20.10.14~3-0~ubuntu-bionic amd64 Docker: the open-source application container engine ii docker-ce-cli 5:20.10.14~3-0~ubuntu-bionic amd64 Docker CLI: the open-source application container engine ii docker-ce-rootless-extras 5:20.10.14~3-0~ubuntu-bionic amd64 Rootless support for Docker. ii docker-scan-plugin 0.17.0~ubuntu-bionic amd64 Docker scan cli plugin.
设置docker开机自启动并现在启动docker.
root@k8scludes1:~# systemctl enable docker --now Synchronizing state of docker.service with SysV service script with /lib/systemd/systemd-sysv-install. Executing: /lib/systemd/systemd-sysv-install enable docker
查看docker状态.
root@k8scludes1:~# systemctl status docker ● docker.service - Docker Application Container Engine Đã tải: đã tải (/lib/systemd/system/docker.service; đã bật; cài đặt trước của nhà cung cấp: đã bật) Đang hoạt động: đang hoạt động (đang chạy) kể từ Thứ bảy 2022-04-16 21:39:46 CST; 3 phút 21 giây trước Tài liệu: https://docs.docker.com PID chính: 1822 (dockerd) Nhiệm vụ: 9 CGroup: /system.slice/docker.service └─1822 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
Kiểm tra phiên bản docker.
root@k8scludes1:~# docker --version Phiên bản Docker 20.10.14, bản dựng a224086
Lưu ý rằng kubernetes V1.22.2 và các phiên bản mới hơn yêu cầu trình điều khiển cgroup của container phải là systemd, nhưng trình điều khiển cgroup mặc định của docker là cgroupfs. Đối với kubernetes phiên bản 1.21 trở về trước, không cần sửa đổi trình điều khiển cgroup.
Bạn có thể sử dụng docker info | grep -i cgroup để xem trình điều khiển cgroup.
root@k8scludes1:~# docker info | grep -i cgroup CẢNH BÁO: Không hỗ trợ giới hạn hoán đổi Trình điều khiển Cgroup: cgroupfs Phiên bản Cgroup: 1
Định cấu hình trình tăng tốc hình ảnh docker và đặt trình điều khiển cgroup docker thành systemd.
root@k8scludes1:~# systemctl restart docker root@k8scludes1:~# systemctl status docker ● docker.service - Docker Application Container Engine Đã tải: đã tải (/lib/systemd/system/docker.service; đã bật; cài đặt trước của nhà cung cấp: đã bật) Đang hoạt động: đang hoạt động (đang chạy) kể từ Thứ bảy 2022-04-16 21:51:29 CST; 8 giây trước Tài liệu: https://docs.docker.com PID chính: 3541 (dockerd) Nhiệm vụ: 9 CGroup: /system.slice/docker.service └─3541 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
Lúc này, Cgroup Driver trở thành systemd.
root@k8scludes1:~# docker info | grep -i cgroup Trình điều khiển Cgroup: systemd Phiên bản Cgroup: 1 CẢNH BÁO: Không hỗ trợ giới hạn hoán đổi
Đặt iptables không xử lý dữ liệu cầu nối và kích hoạt chức năng định tuyến và chuyển tiếp IP.
Cài đặt kubelet, kubeadm và kubectl trên cả ba nút. Lấy k8scludes1 làm ví dụ:
Kubelet là thành phần proxy trên nút công nhân kubernetes, chạy trên mỗi nút
Kubeadm là một công cụ cài đặt để nhanh chóng xây dựng kubernetes (k8s). Nó cung cấp hai lệnh, kubeadm init và kubeadm join, để nhanh chóng tạo một cụm kubernetes khởi động và chạy một cụm có sẵn ở mức tối thiểu bằng cách thực hiện các thao tác cần thiết.
kubectl là một công cụ dòng lệnh cho các cụm Kubernetes. kubectl có thể tự quản lý cụm đó cũng như cài đặt và triển khai các ứng dụng được chứa trong bộ chứa trên cụm.
root@k8scludes1:~# apt-get -y install kubelet=1.22.2-00 kubeadm=1.22.2-00 kubectl=1.22.2-00 Đang đọc danh sách các gói... Hoàn tất Đang xây dựng cây phụ thuộc Đang đọc thông tin trạng thái... Hoàn tất Các gói bổ sung sau sẽ được cài đặt: conntrack cri-tools kubernetes-cni socat ...... Đang giải nén kubeadm (1.22.2-00) ... Đang thiết lập conntrack (1:1.4.4+snapshot20161117-6ubuntu2) ... Đang thiết lập kubernetes-cni (0.8.7-00) ... Đang thiết lập cri-tools (1.23.0-00) ... Đang thiết lập socat (1.7.3.2-2ubuntu2) ... Đang thiết lập kubelet (1.22.2-00) ... Đã tạo liên kết tượng trưng /etc/systemd/system/multi-user.target.wants/kubelet.service → /lib/systemd/system/kubelet.service. Thiết lập kubectl (1.22.2-00) ... Thiết lập kubeadm (1.22.2-00) ... Xử lý các kích hoạt cho man-db (2.8.3-2ubuntu0.1) ...
Đặt kubelet tự động khởi động khi khởi động và khởi động kubelet ngay bây giờ.
root@k8scludes1:~# systemctl enable kubelet --now
Kubelet không thể khởi động bây giờ.
root@k8scludes1:~# systemctl status kubelet ● kubelet.service - kubelet: Kubernetes Node Agent Đã tải: đã tải (/lib/systemd/system/kubelet.service; đã bật; cài đặt trước của nhà cung cấp: đã bật) Drop-In: /etc/systemd/system/kubelet.service.d └─10-kubeadm.conf Đang hoạt động: đang kích hoạt (tự động khởi động lại) (Kết quả: mã thoát) kể từ Thứ bảy, ngày 16 tháng 4 năm 2022 lúc 22:07:09 CST; 7 giây trước Tài liệu: https://kubernetes.io/docs/home/ Tiến trình: 5282 ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_KUBEADM_ARGS $KUBELET_EXTRA_ARGS (mã=thoát, trạng thái=1/THẤT BẠI) PID chính: 5282 (mã=thoát, trạng thái=1/THẤT BẠI)
七.kubeadm初始化
更新软件源.
root@k8scludes1:~# cập nhật apt
Kiểm tra các phiên bản gói kubeadm có sẵn.
root@k8scludes1:~# apt-cache madison kubeadm | grep 1.22 kubeadm | 1.22.8-00 | https://mirrors.aliyun.com/kubernetes/apt kubernetes-xenial/main amd64 Các gói kubeadm | 1.22.7-00 | https://mirrors.aliyun.com/kubernetes/apt kubernetes-xenial/main amd64 Các gói kubeadm | 1.22.6-00 | https://mirrors.aliyun.com/kubernetes/apt kubernetes-xenial/main amd64 Các gói kubeadm | 1.22.5-00 | https://mirrors.aliyun.com/kubernetes/apt kubernetes-xenial/main amd64 Các gói kubeadm | 1.22.4-00 | https://mirrors.aliyun.com/kubernetes/apt kubernetes-xenial/main amd64 Các gói kubeadm | 1.22.3-00 | https://mirrors.aliyun.com/kubernetes/apt kubernetes-xenial/main amd64 Các gói kubeadm | 1.22.2-00 | https://mirrors.aliyun.com/kubernetes/apt kubernetes-xenial/main amd64 Các gói kubeadm | 1.22.1-00 | https://mirrors.aliyun.com/kubernetes/apt kubernetes-xenial/main amd64 Các gói kubeadm | 1.22.0-00 | https://mirrors.aliyun.com/kubernetes/apt kubernetes-xenial/main amd64 Các gói
kubeadm init: Khởi tạo nút mặt phẳng điều khiển Kubernetes trên nút chính k8scludes1.
--image-repository register.aliyuncs.com/google_containers: cho biết việc sử dụng kho hình ảnh của Đám mây Alibaba, nếu không thì không thể tải xuống một số hình ảnh;
--kubernetes-version=v1.22.2: Chỉ định phiên bản kubernetes;
--pod-network-cidr=10.244.0.0/16: Chỉ định phân đoạn mạng của nhóm;
coredns là một dịch vụ DNS nguồn mở được viết bằng ngôn ngữ go.
root@k8scludes1:~# kubeadm init --image-repository registry.aliyuncs.com/google_containers --kubernetes-version=v1.22.2 --pod-network-cidr=10.244.0.0/16 [init] Sử dụng phiên bản Kubernetes: v1.22.2 [preflight] Đang chạy các kiểm tra trước khi bay ...... [bootstrap-token] Tạo ConfigMap "cluster-info" trong không gian tên "kube-public" [kubelet-finalize] Đang cập nhật "/etc/kubernetes/kubelet.conf" để trỏ đến chứng chỉ và khóa máy khách kubelet có thể xoay [addons] Đã áp dụng addon cần thiết: CoreDNS [addons] Đã áp dụng addon cần thiết: kube-proxy Mặt phẳng điều khiển Kubernetes của bạn đã khởi tạo thành công! Để bắt đầu sử dụng cụm của bạn, bạn cần chạy lệnh sau với tư cách là người dùng thông thường: mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config Ngoài ra, nếu bạn là người dùng root, bạn có thể chạy lệnh: export KUBECONFIG=/etc/kubernetes/admin.conf Bây giờ bạn nên triển khai mạng pod vào cụm. Chạy "kubectl apply -f [podnetwork].yaml" với một trong các tùy chọn được liệt kê tại: https://kubernetes.io/docs/concepts/cluster-administration/addons/ Sau đó, bạn có thể tham gia bất kỳ số lượng nút công nhân nào bằng cách chạy lệnh sau trên mỗi nút với tư cách là root: kubeadm join 192.168.110.128:6443 --token ju8p1y.8gjm5q00l6u5y1rp \ --discovery-token-ca-cert-hash sha256:3f401b6187ed44ff8f4b50aa6453cf3eacc3b86d6a72e3bf2caba02556cb918e
Khi kubeadm được khởi chạy, nhiều hình ảnh khác nhau sẽ được tải xuống và có thể xem được bằng hình ảnh docker.
root@k8scludes1:~# docker images REPOSITORY TAG IMAGE ID CREATED SIZE registry.aliyuncs.com/google_containers/kube-apiserver v1.22.2 e64579b7d886 7 tháng trước 128MB registry.aliyuncs.com/google_containers/kube-controller-manager v1.22.2 5425bcbd23c5 7 tháng trước 122MB registry.aliyuncs.com/google_containers/kube-proxy v1.22.2 873127efbc8a 7 tháng trước 104MB registry.aliyuncs.com/google_containers/kube-scheduler v1.22.2 b51ddc1014b0 7 tháng trước 52.7MB registry.aliyuncs.com/google_containers/etcd 3.5.0-0 004811815584 10 tháng trước 295MB registry.aliyuncs.com/google_containers/coredns v1.8.4 8d147537fb7d 10 tháng trước 47.6MB registry.aliyuncs.com/google_containers/pause 3.5 ed210e3e4a5b 13 tháng trước 683kB
root@k8scludes1:~# kubectl get node TÊN TRẠNG THÁI VAI TRÒ TUỔI PHIÊN BẢN k8scludes1 Chưa sẵn sàng mặt phẳng điều khiển,master 178m v1.22.2
八.添加worker节点到k8s集群
Tiếp theo, thêm hai nút công nhân khác vào cụm k8s.
Câu sau đây được xuất ra trong quá trình init kubeadm.
kubeadm tham gia 192.168.110.128:6443 --token ju8p1y.8gjm5q00l6u5y1rp \ --discovery-token-ca-cert-hash sha256:3f401b6187ed44ff8f4b50aa6453cf3eacc3b86d6a72e3bf2caba02556cb918e
Thực hiện lệnh này trên hai nút công nhân còn lại để thêm các nút vào cụm k8s.
Nếu bạn quên mã thông báo để tham gia cụm, bạn có thể sử dụng lệnh sau để lấy mã thông báo lệnh tham gia mới nhất.
Thực hiện lệnh mã thông báo để tham gia cụm trên k8scludes2.
root@k8scludes2:~# kubeadm join 192.168.110.128:6443 --token 4xk96a.qizykuirhn8ccvcw --discovery-token-ca-cert-hash sha256:3f401b6187ed44ff8f4b50aa6453cf3eacc3b86d6a72e3bf2caba02556cb918e [kiểm tra trước] Đang chạy các kiểm tra trước [kiểm tra trước] Đang đọc cấu hình từ cụm... [kiểm tra trước] FYI: Bạn có thể xem tệp cấu hình này bằng 'kubectl -n kube-system get cm kubeadm-config -o yaml' [kubelet-start] Đang ghi cấu hình kubelet vào tệp "/var/lib/kubelet/config.yaml" [kubelet-start] Đang ghi tệp môi trường kubelet có cờ để lưu trữ "/var/lib/kubelet/kubeadm-flags.env" [kubelet-start] Đang khởi động kubelet [kubelet-start] Đang chờ kubelet thực hiện TLS Bootstrap... Nút này đã tham gia cụm: * Yêu cầu ký chứng chỉ đã được gửi đến apiserver và đã nhận được phản hồi. * Kubelet đã được thông báo về thông tin chi tiết về kết nối bảo mật mới. Chạy 'kubectl get nodes' trên mặt phẳng điều khiển để xem nút này tham gia cụm.
Bạn có thể thấy rằng sau khi nút worker được thêm vào cụm k8s, sẽ có thêm hai hình ảnh nữa.
root@k8scludes2:~# docker images REPOSITORY TAG IMAGE ID CREATED SIZE registry.aliyuncs.com/google_containers/pause 3.5 ed210e3e4a5b 13 tháng trước 683kB registry.aliyuncs.com/google_containers/kube-proxy v1.22.2 873127efbc8a 7 tháng trước 104MB
Thực hiện lệnh mã thông báo để tham gia cụm trên k8scludes3.
root@k8scludes3:~# kubeadm join 192.168.110.128:6443 --token 4xk96a.qizykuirhn8ccvcw --discovery-token-ca-cert-hash sha256:3f401b6187ed44ff8f4b50aa6453cf3eacc3b86d6a72e3bf2caba02556cb918e [kiểm tra trước] Đang chạy các kiểm tra trước [kiểm tra trước] Đang đọc cấu hình từ cụm... [kiểm tra trước] FYI: Bạn có thể xem tệp cấu hình này bằng 'kubectl -n kube-system get cm kubeadm-config -o yaml' [kubelet-start] Đang ghi cấu hình kubelet vào tệp "/var/lib/kubelet/config.yaml" [kubelet-start] Đang ghi tệp môi trường kubelet có cờ để lưu trữ "/var/lib/kubelet/kubeadm-flags.env" [kubelet-start] Đang khởi động kubelet [kubelet-start] Đang chờ kubelet thực hiện TLS Bootstrap... Nút này đã tham gia cụm: * Yêu cầu ký chứng chỉ đã được gửi đến apiserver và đã nhận được phản hồi. * Kubelet đã được thông báo về thông tin chi tiết về kết nối bảo mật mới. Chạy 'kubectl get nodes' trên mặt phẳng điều khiển để xem nút này tham gia cụm.
Bạn có thể thấy rằng sau khi nút worker được thêm vào cụm k8s, sẽ có thêm hai hình ảnh nữa.
root@k8scludes3:~# docker images REPOSITORY TAG IMAGE ID CREATED SIZE registry.aliyuncs.com/google_containers/kube-proxy v1.22.2 873127efbc8a 7 tháng trước 104MB registry.aliyuncs.com/google_containers/pause 3.5 ed210e3e4a5b 13 tháng trước 683kB
Kiểm tra trạng thái nút trong k8scludes1 và bạn có thể thấy rằng cả hai nút công nhân đã được thêm vào cụm k8s.
root@k8scludes1:~# kubectl get nodes TÊN TRẠNG THÁI VAI TRÒ TUỔI PHIÊN BẢN k8scludes1 Chưa sẵn sàng mặt phẳng điều khiển, chủ 3 giờ 2 phút v1.22.2 k8scludes2 Chưa sẵn sàng 60 giây v1.22.2 k8scludes3 Chưa sẵn sàng 57 giây v1.22.2
九.部署CNI网络插件calico
Mặc dù cụm kubernetes hiện có 1 nút chính và 2 nút công nhân, nhưng trạng thái của ba nút tại thời điểm này là Chưa sẵn sàng. Lý do là không có plug-in mạng CNI để liên lạc giữa các nút, plug-in mạng cni. cần được cài đặt. Thường được sử dụng Các plug-in mạng cni bao gồm calico và flannel. Sự khác biệt giữa hai loại này là: flannel không hỗ trợ các chính sách mạng phức tạp, trong khi calico hỗ trợ các chính sách mạng. Vì chính sách mạng kubernetes sẽ cần phải được định cấu hình. trong tương lai, plug-in mạng cni được chọn cho bài viết này là calico! .
Bây giờ hãy truy cập trang web chính thức để tải xuống tệp calico.yaml:
Trang web chính thức: https://projectcalico.docs.tigera.io/about/about-calico.
Tìm kiếm calico.yaml trực tiếp trong hộp tìm kiếm.
Tìm lệnh tải calico.yaml.
Tải xuống tệp calico.yaml.
root@k8scludes1:~# curl https://docs.projectcalico.org/manifests/calico.yaml -O % Tổng % Đã nhận % Xferd Tốc độ trung bình Thời gian Thời gian Thời gian Tải xuống hiện tại Tải lên Tổng đã sử dụng Còn lại Tốc độ 100 212k 100 212k 0 0 8736 0 0:00:24 0:00:24 --:--:-- 18568 root@k8scludes1:~# ls aa.txt apt-key.gpg calico.yaml set.sh
Tại thời điểm này, cả ba nút đều có hình ảnh calico.
root@k8scludes1:~# hình ảnh docker | grep calico calico/kube-controllers v3.22.2 a1a88662416b 2 ngày trước 132MB calico/cni v3.22.2 be7dfc21ba2e 2 ngày trước 236MB calico/pod2daemon-flexvol v3.22.2 d6660bf471e1 2 ngày trước 19,7MB calico/node v3.22.2 fd1608dbbc19 2 ngày trước 198MB root@k8scludes2:~# hình ảnh docker | grep calico calico/kube-controllers v3.22.2 a1a88662416b 2 ngày trước 132MB calico/cni v3.22.2 be7dfc21ba2e 2 ngày trước 236MB calico/pod2daemon-flexvol v3.22.2 d6660bf471e1 2 ngày trước 19,7MB calico/node v3.22.2 fd1608dbbc19 2 ngày trước 198MB root@k8scludes3:~# docker images | grep calico calico/kube-controllers v3.22.2 a1a88662416b 2 ngày trước 132MB calico/cni v3.22.2 be7dfc21ba2e 2 ngày trước 236MB calico/pod2daemon-flexvol v3.22.2 d6660bf471e1 2 ngày trước 19,7MB calico/node v3.22.2 fd1608dbbc19 2 ngày trước 198MB
Sửa đổi tệp calico.yaml. Phân đoạn IP của CALICO_IPV4POOL_CIDR phải nhất quán với phân đoạn mạng pod khi khởi chạy kubeadm. Lưu ý rằng định dạng phải được căn chỉnh, nếu không sẽ xảy ra lỗi.
Nếu không trực quan thì xem hình: Sửa file calico.yaml.
Áp dụng tệp calico.yaml.
root@k8scludes1:~# kubectl apply -f calico.yaml configmap/calico-config đã tạo customresourcedefinition.apiextensions.k8s.io/bgpconfigurations.crd.projectcalico.org đã tạo customresourcedefinition.apiextensions.k8s.io/bgppeers.crd.projectcalico.org đã tạo ...... clusterrolebinding.rbac.authorization.k8s.io/calico-kube-controllers đã tạo clusterrole.rbac.authorization.k8s.io/calico-node đã tạo clusterrolebinding.rbac.authorization.k8s.io/calico-node đã tạo daemonset.apps/calico-node đã tạo serviceaccount/calico-node đã tạo implementation.apps/calico-kube-controllers đã tạo serviceaccount/calico-kube-controllers đã tạo Cảnh báo: policy/v1beta1 PodDisruptionBudget đã lỗi thời trong v1.21+, không khả dụng trong v1.25+; sử dụng chính sách/v1 PodDisruptionBudget poddisruptionbudget.policy/calico-kube-controllers đã tạo
Kiểm tra vỏ calico.
root@k8scludes1:~# kubectl get pod -A | grep calico kube-system calico-kube-controllers-65898446b5-gtsz6 1/1 Đang chạy 0 58 giây kube-system calico-node-d6564 1/1 Đang chạy 0 59 giây kube-system calico-node-jgvjb 0/1 Đang chạy 0 59 giây kube-system calico-node-snkxp 1/1 Đang chạy 0 59 giây
Lúc này, người ta nhận thấy cả ba nút đều ở trạng thái Sẵn sàng.
root@k8scludes1:~# kubectl get node TÊN TRẠNG THÁI VAI TRÒ TUỔI PHIÊN BẢN k8scludes1 Sẵn sàng mặt phẳng điều khiển, chủ 3h44m v1.22.2 k8scludes2 Sẵn sàng 42m v1.22.2 k8scludes3 Sẵn sàng 42m v1.22.2
十.配置kubectl命令tab键自动补全
Xem các lệnh tự động hoàn thành kubectl.
root@k8scludes1:~# kubectl --help | grep bash completion Xuất mã hoàn thành shell cho shell được chỉ định (bash hoặc zsh)
Thêm source <(kubectl Completed bash) vào /etc/profile và làm cho cấu hình có hiệu lực.
root@k8scludes1:~# vim /etc/profile root@k8scludes1:~# cat /etc/profile | head -3 # /etc/profile: tệp .profile trên toàn hệ thống cho shell Bourne (sh(1)) # và các shell tương thích với Bourne (bash(1), ksh(1), ash(1), ...). source <(kubectl completion bash) root@k8scludes1:~# source /etc/profile
Tại thời điểm này, phím tab lệnh kubectl có thể được tự động hoàn thành.
root@k8scludes1:~# kubectl get nodes TÊN TRẠNG THÁI VAI TRÒ TUỔI PHIÊN BẢN k8scludes1 Sẵn sàng mặt phẳng điều khiển, chủ 3h46m v1.22.2 k8scludes2 Sẵn sàng 45m v1.22.2 k8scludes3 Sẵn sàng 45m v1.22.2
十一.总结
Tại thời điểm này, chúng tôi đã cài đặt và triển khai thành công cụm Kubernetes 1.22.2 trên Ubuntu 18.04. Bây giờ bạn có thể bắt đầu tạo và quản lý tài nguyên Kubernetes của mình.
Cuối cùng, bài viết này về cách cài đặt và triển khai cụm Kubernetes (k8s) trong Ubuntu kết thúc tại đây. Nếu bạn muốn biết thêm về cách cài đặt và triển khai cụm Kubernetes (k8s) trong Ubuntu, vui lòng tìm kiếm các bài viết CFSDN hoặc tiếp tục duyệt qua các bài viết liên quan. Tôi hy vọng tất cả các bạn ủng hộ blog của tôi trong tương lai! .
Tôi nhận được kết xuất cơ sở dữ liệu của mình (bảng, hàm, trình kích hoạt, v.v.) trong tệp *.sql. Tại thời điểm này, tôi đang triển khai chúng thông qua jenkins, thực thi lệnh shell bằng cách chuyển: sudo -u postgres psql -d my_
Tôi đang sử dụng API triển khai mạng để triển khai gói mạng (tệp .zip, được tạo bởi MSDeploy.exe) để xuất bản gói lên máy chủ theo chương trình (trước khi xuất bản gói, chúng tôi cần thực hiện một số việc khác, đó là lý do tại sao chúng tôi không sử dụng MSDeploy. .e
Chúng tôi đang sử dụng "API công khai" của Web Deploy 3 (gần như hoàn toàn không có giấy tờ) để tạo gói .zip cho trang web của chúng tôi và sau đó đồng bộ hóa nó với máy chủ: DeploymentBaseOptions des
Cách dễ nhất để biến một ứng dụng clojure thành một ứng dụng có thể thực thi được, như http://rawr.rubyforge.org/ ruby là gì? (cả tệp exe và ứng dụng) Câu trả lời hay nhất sử dụng leini
Có thể tải xuống mã nguồn Android và biên dịch nó cho bất kỳ thiết bị nào không? Những gì tôi muốn làm là thử phần mã GSM và biên dịch hệ điều hành và triển khai nó trên điện thoại Motorola của tôi. Cảm ơn! Câu trả lời hay nhất Có, nhưng thật khó vì hầu hết các điện thoại không chia sẻ trình điều khiển
Tôi đang nghĩ đến việc viết mô phỏng kiểu nbody bằng c/c++ cần chạy trên hầu hết các máy tính cá nhân. Về cơ bản là một trình mô phỏng hạt O(n^2). Vì điều này cần phải khá thân thiện với người dùng nên tôi muốn có 1 Wi không yêu cầu người dùng phải cài đặt bất cứ thứ gì
Cần hiểu sự khác biệt giữa các số liệu kube_deployment_status_replicas và kube_deployment_spec_replicas trong triển khai kubernetes Câu trả lời hay nhất Tóm lại,
Tôi đang cố gắng triển khai Maven Artifact bằng trình phân loại. Vì tôi cần mã nguồn và JAR (tôi đang sử dụng nó từ GWT), tôi muốn nhận Arti-version-classifier.jar và Artifacta
Tôi thiết lập triển khai để đồng bộ hóa mã dự án của mình với dự án trên máy chủ FTP nơi lưu trữ trang web của tôi. Tuy nhiên, tôi luôn phải đăng nhập mỗi lần cố gắng đồng bộ hóa. Tôi thậm chí đã kiểm tra nhưng nó không hoạt động! Tôi đang sử dụng PhpStorm 2017.1.4 mới nhất
Tôi đã phát triển một trang web ASP.NET trong Visual Studio 2008. Bây giờ tôi muốn triển khai nó trên các máy khác. Làm thế nào tôi có thể làm điều này? ? Giống như việc chúng ta tạo các gói cài đặt cho ứng dụng Windows, chúng ta có thể tạo các gói cài đặt cho AS
Thêm khung QT vào gói .app của tôi Tôi đang làm theo tài liệu về triển khai trên trang Qt. Tôi đã tạo một ứng dụng có tên HTTPClient.app Tôi đã tạo tệp Khung trong Nội dung
Câu hỏi này dường như không hữu ích cho bất kỳ khách truy cập nào trong tương lai; nó chỉ liên quan đến một khu vực địa lý nhỏ, một thời điểm cụ thể hoặc một tình huống rất hẹp và thường không áp dụng cho khán giả Internet toàn cầu. Để được trợ giúp làm cho câu hỏi này có thể áp dụng rộng rãi hơn, hãy truy cập h
Tôi đang xem xét thay đổi chiến lược hiện tại của mình để tạo các trang web tiếp thị. Hiện tại, tôi xây dựng trang web từ đầu hoàn toàn bằng PHP, sử dụng hệ thống bao gồm đơn giản. Tất cả mã (và nội dung) được lưu trữ trong các tệp (chứ không phải cơ sở dữ liệu), cho phép tôi sử dụng Subversion
Tôi có một dịch vụ chạy dài (trong một vòng lặp while 1) và xử lý tải trọng thông qua GCloud pub/sub, sau đó nó ghi kết quả vào cơ sở dữ liệu. Dịch vụ không cần nghe trên bất kỳ cổng nào. Bản chất khai báo của Loại=Triển khai
Có vẻ như việc triển khai đã bị đình trệ. Làm thế nào tôi có thể chẩn đoán thêm điều này? triển khai trạng thái triển khai kubectl/wordpress Đang chờ quá trình triển khai kết thúc: 2 ou
Tôi đang xây dựng một ứng dụng khách/máy chủ trong Dart bằng cách sử dụng Angular ở mặt trước và Kệ ở mặt sau. Khi tôi xây dựng quán rượu, nó tạo ra javascript cho tệp Dart như mong đợi nhưng không thay thế Da trong tệp HTML
Tôi không thể thấy tất cả các kho lưu trữ của tổ chức Github của mình trong danh sách thả xuống trong Trung tâm triển khai Azure. Azure đã được ủy quyền từ lâu và danh sách thả xuống hiển thị chính xác tất cả các kho lưu trữ cho đến tuần trước khi tôi đang chơi DevOps và phải
Tôi nghĩ tiêu đề đã nói lên tất cả... hoàn toàn mới đối với Đã triển khai, vì vậy mọi gợi ý về cách tốt nhất để triển khai điều này đều được đánh giá cao. Câu trả lời hay nhất Để lấy các đối tượng trong bộ sưu tập do người dùng tạo (Tôi giả sử bạn đang sử dụng thư viện javascript
Tôi có một tập lệnh triển khai mà tôi đang cố gắng sử dụng cho máy chủ CD nhưng tôi gặp sự cố khi viết tập lệnh bash để hoàn thành một số bước bắt buộc (chẳng hạn như chạy các lệnh npm và di chuyển). Làm cách nào để chuyển từ tập lệnh này vào bash vùng chứa, chạy lệnh bên dưới, sau đó thoát để hoàn tất tìm nạp các thay đổi
Tôi muốn áp dụng tệp triển khai bằng cách chuyển tham số cho lệnh triển khai Kubernetes khi sử dụng kubectl. Ví dụ: Trong triển khai.yaml của tôi, tôi có các tham số sau và tôi muốn chạy nó bằng kubectl apply - f .yaml
Tôi là một lập trình viên xuất sắc, rất giỏi!