1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo Cáo Kubernetes.docx

25 1 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 25
Dung lượng 2,96 MB

Nội dung

Aladin Technology BÁO CÁO KUBERNETES I Mục Lục Contents II Kubernetes là gì 2 1 Kubernetes là gì 2 2 Container là gì? 3 Điểm khác nhau giữa máy ảo và container là gì? 4 3 Tại sao lại cần sử dụng kuber[.]

Aladin Technology BÁO CÁO KUBERNETES I Mục Lục Contents II Kubernetes Kubernetes 2 Container gì? - Điểm khác máy ảo container gì? Tại lại cần sử dụng kubernetes? III Kiến trúc kubernetes 1.1 Kiến trúc master node Question: Điều xảy master node? .6 1.2 Kiến trúc Worker node Service cluster ClusterIP .9 NodePort .9 LoadBalancer ExternalName .9 IV Phân biệt target port, host port node port 10 Node Port 10 host Port 11 target port 11 V Phân biệt Kubectl, kubeadm, kubelet .11 Option .11 kubectl 11 kubeadm 11 kubelet 11 Range (phạm vi) .11 Tương tác cụm(cluster) 11 Tương tác node .11 Tương tác node .11 Viết tắt 11 The kubernetes command line tool 11 Chức .11 VI Setup kubernetes .11 Chuẩn bị môi trường cài đặt .11 Cài đặt kubernetes server 192.168.1.229 12 join worker node 192.168.1.158 vào cluster 15 VII deploy web lên kubernetes 16 chuẩn bị project html spring boot, Dockerfile project 16 Đăng ký image với docker hub .17 Deploy .18 IX Danh mục tham khảo 21 Youtube 21 Google 21 Aladin Technology II Kubernetes Kubernetes - Kubernetes tảng mã nguồn mở dùng để quản lý, mở rộng triển khai ứng dụng dạng container (Containers orchestration) - Container orchestration giúp tự động: + deployment + management + scaling + networking containers - Kubernetes hoạt động theo cụm (các cluster) Mỗi cluster có nhiều máy chủ kết hợp lại - Các máy chủ cụm (cluster) máy chủ vật lý máy ảo (các máy ảo chạy máy chủ vật lý máy chủ có đủ sức mạnh) - Tập hợp container lại thành cụm giúp cho việc quản lý container dễ dàng nhiều Dựa vào câu lệnh kubectl, kiểm sốt trạng thái container Aladin Technology Sử dụng câu lệnh: kubectl describe pod [tên pod] để kiểm tra tất thông tin pod tạo trạng thái pod - năm 2014: google mắt kubernetes - năm 2016: google linux foundation bắt tay tạo nên tổ chức: Cloud native Computing Foundation - kubernetes trở thành project chung tổ chức Container gì? - Các container tương tự máy ảo, chúng có tính lập hệ điều hành Aladin Technology - Điểm khác máy ảo container gì? Dựa vào sơ đồ thấy + Với máy ảo, ứng dụng chạy OS(hệ điều hành riêng biệt), hệ điều hàng lấy tài nguyên từ máy thật, điều làm cho tài nguyên bị chiếm dụng lớn + Với container, container sử dụng chung hệ điều hành nhất, Chúng sử dụng chung hệ điều hành nên không tốn nhiều tài nguyên Tại lại cần sử dụng kubernetes? Kubernetes cung cấp cho chúng ta: Chức Nội dung Service discovery cân Kubernetes expose container sử dụng tải DNS địa IP riêng Nếu lượng traffic truy cập đến container cao, Kubernetes cân tải phân phối lưu lượng mạng (network traffic) để việc triển khai ổn định Điều phối nhớ Kubernetes cho phép tự động mount hệ thống lưu trữ chọn, local storages, public cloud providers, v.v Tự động rollouts rollbacks Đóng gói tự động Chúng ta cấp cho Kubernetes cluster gồm node (worker node) mà sử dụng để chạy tác vụ đóng gói (containerized Tự phục hồi Quản lý cấu hình bảo mật Tránh downtime task) Chúng ta cần cho Kubernetes biết container cần CPU nhớ (RAM) Kubernetes điều phối container đến node để tận dụng tốt resource Kubernetes khởi động lại containers bị lỗi, thay container, xoá container khơng phản hồi lại cấu hình health check người dùng xác định không cho client biết đến chúng chúng sẵn sàng hoạt động chạy website, ngày website gặp vấn đề, lập tức, container khác chạy website gọi đến website hoạt động bình thường III Kiến trúc kubernetes Cấu trúc tổng quát kubernetes cluster 1.1Kiến trúc master node Aladin Technology - Master node nơi thực thi tiến trình quan trọng cụm kubernetes etcd - Trong master node có khái niệm quan trọng: Kube API server, Kube schedules, Kube Controller-manager + Kube API Server: Tất giao tiếp bên ngồi đến cluster(1 cụm kubernetes) phải thông qua API server + Kube Controller manager: tên gọi nó, Controller manager chịu trách nhiệm quản lý trạng thái controller cụm container bị chết cần khởi động lại + Kube Schedules: chịu trách nhiệm lập lịch cho container node, dựa vào lịch trình lưu trữ etcd (database lưu lịch trình container cụm) + etcd: chứa tất liệu cấu hình liệu trạng thái node container Question: Điều xảy master node? - Nếu master node, truy cập vào cụm kubernetes - Trên thực tế, để tránh việc đột ngột master node bị chết người ta khơng có master node cho cụm, mà nhiều master node, bình thường có master node hoạt động, master node lại trạng thái nghỉ, master node chạy bị chết, master node khác gọi để thực thay node bị chết Aladin Technology 1.2 Kiến trúc Worker node - Các worker node máy ảo máy chủ vật lý Chúng quản lý trực tiếp bới master node Một worker node có nhiều pods máy ảo hay máy chủ cài kubernetes cần biết token mã hash master node join vào cluser - worker node có thành phần kubelet kube-proxy - kiểm tra trạng thái nodes câu lệnh: kubectl describe nodes [tên nodes] Aladin Technology Service cluster - Dựa vào sơ đồ thấy service kubernetes có loại Aladin Technology + ClusterIp + NodePort + Load Balancer + ExternalName ClusterIP NodePort ClusterIP service loại service mặc định Kubernetes Service loại ClusterIP truy cập ứng dụng khác ứng dụng nằm cụm Các ứng dụng bên ngồi cụm khơng thể truy cập đến service Là port mở node cluster Khi client gửi request tới server request qua cổng trước truyền đến service bên cụm (phần em chưa hiểu) LoadBalancer ExternalName Tạm hiểu giống tên miền: aladintech.co Thay phải viết 125.212.192.151 cần viết aladintech.co để truy cập vào website Aladin Technology 10 - ClusterIp kubernetes: + giải mạng ảo tạo cụm + dải mạng mặc định clusterIp là: 10.x.x.x/16 + clusterIp giúp cung cấp kết nối mạng bên cụm + clusterip giúp pod giao tiếp với nhau, pod bên cluster gọi đến pod cụm IV Phân biệt target port, host port node port Aladin Technology 11 Node Port - Node port có phạm vi từ 30000 -> 32768, có tổng cộng 2768 cổng sử dụng - Node port có tác dụng nhận yêu cầu từ client vào, giống cổng nhà, nơi giao thương server với internet bên ngoài, bên muốn vào hay bên muốn phải qua loại cổng - Theo ví dụ bên trên, node port 30080 host Port - Là port mở service, nơi tiếp nhận request từ node port để chuyển vào bên - Có thể hình dung giống trạm chung truyển node port target port target port - Là cổng mà service gửi yêu cầu đến đó, pod lắng nghe cổng này, bao gồm container lắng nge cổng Aladin Technology 12 - Ví dụ spring boot app chạy local 8080 deploy lên kubernetes để target port 8080 pod bao bọc container spring boot app bao bọc cổng 8080 pod rảnh rỗi V Phân biệt Kubectl, kubeadm, kubelet Option kubectl Range (phạm vi) Tương tác Tương tác node cụm(cluster) Viết tắt The kubernetes command line tool Kubectl dùng để kiểm soát kubenetes (giống quyền root) Nó kiểm tra thơng tin pods, service Chức kubeadm kubelet Tương tác node Nhiệm vụ kubelet quản lý container kubenetes tạo VI Setup kubernetes Chuẩn bị môi trường cài đặt - server ubuntu + server 1: 192.168.1.229 làm master node + server 2: 192.168.1.158 làm worker node - project build sẵn image sử dụng docker - Công cụ sử dụng: putty xshell để connect tới server Cài đặt kubernetes server 192.168.1.229 Bước 1: Thực thi câu lệnh sau để chuẩn bị cài đặt - sudo apt install apt-transport-https curl curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo aptkey add Aladin Technology 13 - echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" >> ~/kubernetes.list sudo mv ~/kubernetes.list /etc/apt/sources.list.d sudo apt update Bước 2: cài đặt kubectl, kubeadm, kubelet - sudo apt install kubelet sudo apt install kubeadm sudo apt install kubectl sudo apt-get install -y kubernetes-cni sudo apt-get install -y kubelet kubeadm kubectl kubernetes-cni Bước 3: Đặt tên cho máy chủ - nhập lệnh: sudo hostnamectl set-hostname kubernetes-master - thoát khỏi máy chủ connect lại, lúc tên máy chủ đổi sang kubernetes-master Bước 4: khởi tạo master node - dải mạng 192.168.0.0/24 - thực thi câu lệnh sau để thiết lập master node: sudo kubeadm init pod-network-cidr=192.168.0.0/24 - sau thực xong câu lệnh trên, kết bên - ý phần đánh dấu, câu lệnh dùng để join node khác vào cluster, copy đoạn file riêng 14 Aladin Technology Bước 5: triển khai mạng pod master node - chạy lệnh sau phép kết nối cổng 6443 cổng mặc định kubernetes sudo ufw allow 6443 sudo ufw allow 6443/tcp - chạy lệnh sau để triển khai mạng pod master node kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/ master/Documentation/kube-flannel.yml kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/ master/Documentation/k8s-manifests/kube-flannel-rbac.yml Bước 6: kiểm tra lại trình cài đặt có thành cơng khơng - sử dụng câu lệnh: kubectl get pods all-namespaces để kiểm tra dịch vụ có chạy hay khơng Nếu dịch vụ kubernetes running bước thực xác Aladin Technology 15 - thứ running, chứng tỏ trình cài đặt thành công - sử dụng câu lệnh: kubectl get componentstatus để xem component schedule, controller manager, etcd - hiển thị tức cài đặt thành công master node - sử dụng câu lệnh: kubectl version –short để hiển thị version kubernetes cài đặt - Sử dụng câu lệnh: kubectl get nodes để xem node có mặt cluster Aladin Technology 16 - Lúc này, có master node cluster join worker node 192.168.1.158 vào cluster Bước 1: Thiết lập ban đầu - sudo apt install apt-transport-https curl curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" >> ~/kubernetes.list sudo mv ~/kubernetes.list /etc/apt/sources.list.d sudo apt update Bước 2: Sau cập nhật xong, cài đặt công cụ kubectl, kubeadm, kubelet, cni - sudo apt install kubelet sudo apt install kubeadm sudo apt install kubectl sudo apt-get install -y kubernetes-cni sudo apt-get install -y kubelet kubeadm kubectl kubernetes-cni Bước 3: Đặt tên cho máy chủ - nhập lệnh: sudo hostnamectl set-hostname kubernetes-worker1 Bước 4: kiểm tra version worker, lúc server bị unable không thiết lập master node cho node Aladin Technology 17 Bước 5: Join worker-node1 vào cluster - sử dụng câu lệnh copy bên trên, dán vào worker chạy kubeadm join 192.168.1.229:6443 token gzo5ax.owq2ydn8gvucwdpz \ discovery-token-ca-cert-hash sha256:91c9eb3c425696b9246bbb43c76e9c44d23f57b4c5459146fef56d95c1c8 e9ab - Sau join thành công, nhận thông báo Bước 6: Quay lại master node (192.168.1.229) để kiểm tra - nhập lệnh: kubectl get nodes để kiểm tra - lúc này, cluster có node: master node server 229, worker node 158 Aladin Technology 18 VII deploy web lên kubernetes chuẩn bị project html spring boot, Dockerfile project - Build image Dockerfile - Vì deploy image lên kubernetes, kubernetes mặc định lấy image từ docker hub về, vậy, đăng ký image lên docker hub Đăng ký image với docker hub - chuẩn bị image có sẵn (có thể build docker platform khác) - sử dụng image có tên webhtml:v1 - đăng ký image với docker hub cách: Aladin Technology 19 + đăng nhập tài khoản lên server master node sử dụng câu lệnh: docker login để đăng nhập tài khoản đăng nhập hub.docker.com - đăng nhập thành công hiển thị thông báo bên - lên hub.docker.com để tạo repository - repository nên để private để bảo mật - private bắt buộc phải đăng nhập tải khoản docker hub để pull deploy - vd repository có tên là: hieutran0210/webhtml - sử dụng câu lệnh sau master để đăng ký image lên hub docker image tag [tên local image]:[version] [tên repository docker hub]: [version] docker push [tên repository docker hub]:[version] - Sau đăng ký thành công, hình thơng báo mã sha265 bên Aladin Technology 20

Ngày đăng: 15/08/2023, 14:28

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w