Giới thiệu về kubernetes là gì, vai trò và các thuật ngữ phổ biến

Kubernetes là luật pháp quản lý những ứng dụng container hóa điều khiển xe trên các lý lẽ nhỏng Docker, quá trình để cài đặt Kubernetes bên trên thiết bị trạm để thực hành và Kubernetes hoàn chỉnh nhằm thực hiện thực tế


Kubernetes là gì? Khái niệm!

Kubernetes (còn gọi là k8s) là 1 trong hệ thống để chạy, cai quản, điều păn năn các vận dụng được container hóa bên trên một nhiều vật dụng (1 tuyệt nhiều) Call là cluster. Với Kubernetes chúng ta có thể thông số kỹ thuật nhằm chạy các áp dụng, hình thức thế nào cho phù hợp nhất lúc bọn chúng cửa hàng với nhau tương tự như cùng với bên phía ngoài. quý khách rất có thể điều chỉnh tăng bớt tài nguim, bạn dạng chạy Ship hàng cho hình thức (scale), bạn có thể update (update), thu hồi update Khi tất cả sự việc ... Kubernetes là một trong khí cụ mạnh mẽ, mềm mỏng, dễ mở rộng Lúc so sánh nó cùng với giải pháp giống như là Docker Swarm!

Kubernetes nó liên tưởng với những hệ thống chất nhận được chạy áp dụng được container hóa cùng có các API cân xứng giao tiếp xúc với Kubernetes (như Docker containerd cri-o rktlet ), vào phạm vi những bài viết này đã lựa chọn trường đúng theo thông dụng là cần sử dụng Kubernetes với các vật dụng thiết đặt Docker. quý khách hàng phải học tập Docker trước khi tham gia học Kubernetes - Xem Sử dụng Docker

Kubernetes được thiết kế với vày Google, về ngữ nghĩa thì tên này là tiếng Hy Lạp có nghĩa là tài công.

Sơ lược phong cách xây dựng - những thành phần của Kubernetes

Hệ thống Kubernetes thiệt sự tinh vi, những nhân tố của sẽ tiến hành tò mò dần dần qua từng bài viết, cơ mà tại đây bao gồm một sơ thứ với một vài bao gồm lúc đầu về kiến trúc / nhân tố của nó

*

Master Server là trang bị thiết yếu của cluster, tại trên đây tinh chỉnh cả nhiều lắp thêm.

Bạn đang xem: Giới thiệu về kubernetes là gì, vai trò và các thuật ngữ phổ biến

etct là thành phần cơ phiên bản cần thiết mang đến Kubernetes, nó lưu trữ những thông số kỹ thuật phổ biến cho tất cả cụm thứ, etct chạy trên sản phẩm công nghệ master. etct là 1 dự án mối cung cấp mnghỉ ngơi (xem trên etcd) nó cung ứng dịch vụ lưu lại tài liệu theo cặp key/value

kube-apiserver chạy trên vật dụng master, cung cấp những API Restful nhằm các client (nhỏng kubectl) can dự với Kubernetes

kube-scheduler chạy tại master, yếu tố này giúp gạn lọc Node như thế nào nhằm chạy các vận dụng địa thế căn cứ vào tài nguyên và những yếu tố không giống sao để cho khối hệ thống ổn định.

kube-controller chạy tại master, nó tinh chỉnh và điều khiển tâm lý cluster, can hệ nhằm tiến hành các tác vụ sản xuất, xóa, update ... các tài nguyên

Kubelet hình thức dịch vụ vụ chạy trên toàn bộ các thiết bị (Node), nó đảm nhận thống kê giám sát chạy, ngừng, duy trì những áp dụng điều khiển xe trên node của nó.

Kube-proxy: hỗ trợ mạng proxy để những ứng dụng nhận được traffic tự kế bên mạng vào cluster.

Tạo Cluster Kubernetes

Để tất cả một Kubernetes cần có các máy chủ (ít nhất một máy), trên những thiết bị thiết lập Docker với Kubernetes. Một trang bị khởi chế tác là master và các vật dụng khác là worker liên kết vào. Có những phương pháp để tất cả Cluster Kubernetes, nhỏng thiết lập minikube để sở hữu kubernetes một nút ít (node) nhằm thực hành (môi trường xung quanh chạy thử), hay cần sử dụng ngay Kubernetes trong Docker Desktop, tuyệt thiết lập một hệ thống rất đầy đủ (Cài Docker, Cài và khởi tạo ra Cluster Kubernetes), tốt sở hữu từ bỏ những đơn vị hỗ trợ hình thức dịch vụ nhỏng Google Cloud Platsize, AWS, Azuze ...

Tại phía trên, reviews nhị cách một là nếu muốn đơn giản - cluster một nút thì dùng ngay trường đoản cú Docker Destop nhằm thể nghiệm. Hai là setup khá đầy đủ một hệ thống - giải pháp mà lại triển khai product sẽ áp dụng.


Tạo Cluster Kubernetes tự Docker Desktop

Đây là phương pháp đơn giản và dễ dàng, mau lẹ để sở hữu Cluster Kubernetes, bởi Docker Destop những phiên bạn dạng new gắn vào sẵn, bài toán của khách hàng chỉ dễ dàng là kích hoạt nó, chỉ bao gồm một tiêu giảm chính là Kubernetes chỉ gồm một Node, các loại này tương thích để bạn chạy thủ các thiên tài mà ngại ngùng thông số kỹ thuật phức tạp

Để kích hoạt thì msinh sống giao diện của Docker Destop đề nghị (giống như nhau cho cả bạn dạng Windows cùng macOS), rồi trên mục Kubernetes lựa chọn Enable Kubernetes rồi dấn Apply vậy là vật dụng của bạn đã sở hữu Cluster Kubernetes


Kích hoạt Kubernetes bên trên macOS

*

Kích hoạt Kubernetes trên Windows

*

Sau Khi kích hoạt chúng ta có thể thực hiện các lệnh sau nhằm hình dạng tra

# Lấy báo cáo Clusterkubectl cluster-info# Các Node gồm vào Clusterkubectl get nodes

*
kubectl là trình client, nó được sử dụng nhằm liên kết cùng liên tưởng với Cluster Kubernetes. Đây là mức sử dụng bao gồm để gia công việc với Kubernetes, những phần sau đã nói kỹ về nó!

Tạm thời mang đến trên đây các bạn chỉ nên biết là kiểm soát nhằm xác minh đang xuất hiện một Cluster trên vật dụng của bạn!

Tạo Cluster Kubernetes hoàn chỉnh

Phần này sẽ khởi tạo ra một Cluster Kubernetes hoàn hảo từ 3 vật dụng (3 VPS - hay 3 Server) chạy CentOS, chúng ta có thể sử dụng giải pháp này lúc triển khai môi trường xung quanh product. Hệ thống này gồm:

Tên máy/Hostname tin tức khối hệ thống Vai trò
master.xtl phần mềm hệ thống CentOS7, Docker CE, Kubernetes. Địa chỉ IP. 172.16.10.100 Khởi sản xuất là master
worker1.xtl hệ điều hành CentOS7, Docker CE, Kubernetes. Địa chỉ IP 172.16.10.101 Khởi tạo ra là worker
worker2.xtl phần mềm hệ thống CentOS7, Docker CE, Kubernetes. Địa chỉ IPhường 172.16.10.102 Khởi chế tạo ra là worker

Để tất cả khối hệ thống 3 trang bị trên khi chưa có điều kiện download các VPS thực thụ thì sẽ sử dụng sản phẩm công nghệ ảo VirtualBox. Bạn có thể download về hệ quản lý điều hành CentOS 7, thiết lập mỗi bước rồi tiến hành cấu hình. Tuy nhiên ở đây, nhằm mục đích mau lẹ đã thực hiện Vagrant giúp tự động hóa quá trình tạo ra 3 vật dụng ảo bên trên VirtualBox (nếu khách hàng chưa biết Vagrant thì xem: Sử dụng Vagrant trước). Đây là quy trình cài đặt phức tạp, nỗ lực thực hiện tuần tự từng bước!

Hãy tạo thành một thỏng mục đánh tên kubernetes-centos7 để chứa những file cấu hình Vagrant.

Xem thêm: Top Phần Mềm Qq Gõ Tiếng Trung Tốt Nhất Cho Máy Tính, Top 3 Bộ Gõ Tiếng Trung Tốt Nhất Cho Máy Tính

Tạo lắp thêm Master Kubernetes

Tạo thự mục nhỏ master, chế tạo trong nó tệp tin vagranttệp tin nlỗi sau:

kubernetes-centos7/master/Vagrantfile

# -*- mode: ruby -*-# vi: phối ft=ruby :# Tạo sản phẩm ảo trường đoản cú box centos/7, gán can dự IP, đặt hostname, gán 2GB bộ lưu trữ, 2 cpus Vagrant.configure("2") vì |config| config.vm.box = "centos/7" config.vm.network "private_network", ip: "172.16.10.100" config.vm.hostname = "master.xtl" config.vm.provider "virtualbox" vì |vb| vb.name = "master.xtl" vb.cpus = 2 vb.memory = "2048" over # Chạy tệp tin install-docker-kube.sh sau khoản thời gian hấp thụ Box config.vm.provision "shell", path: "./../install-docker-kube.sh" # Chạy những lệnh shell config.vm.provision "shell", inline: >/etc/hosts kubernetes-centos7/install-docker-kube.sh #!/bin/bash# Cập nhật 12/2019# Cai dat Dockeryum install -y yum-utils device-mapper-persistent-data lvm2yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repoyum update -y && yum install docker-ce-18.06.2.ce -yuserhack -aG docker $(whoami)## Create /etc/docker directory.mkdir /etc/docker# Setup daetháng.cat > /etc/docker/daetháng.json /dev/null 2>&1systemctl stop firewalld# sysctlcát >>/etc/sysctl.d/kubernetes.conf/dev/null 2>&1# Tat swapsed -i '/swap/d' /etc/fstabswapoff -a# Add yum repo tệp tin for Kubernetesmèo >>/etc/yum.repos.d/kubernetes.repo>/etc/NetworkManager/conf.d/caliteo.conf Thiết lập file chạy được

chmode +x install-docker-kube.sh Tại thư mục kubernetes-centos7/master/ gõ lệnh vagrant nhằm tạo thành lắp thêm master.xtl

vagrant up Sau lệnh này, quá trình thiết lập ra mắt, kết thúc thì tất cả lắp thêm ảo VirtualBox cùng với tên master.xtl trong những số đó đã có Docker, kubelet đang làm việc tại khu vực IP.. 172.16.10.100, hãy ssh vào thiết bị này bởi lệnh ssh với thông tin tài khoản root có thông số kỹ thuật pass là 123 sinh hoạt trên.

Khởi tạo thành Cluster

Trong lệnh khởi tạo thành cluster tất cả tsay mê số --pod-network-cidr để lựa chọn thông số kỹ thuật mạng của POD, vì chưng ý định dùng Addon calico hãy lựa chọn --pod-network-cidr=192.168.0.0/16

Gõ lệnh sau nhằm khlàm việc tạo nên là nút ít master của Cluster

kubeadm init --apiserver-advertise-address=172.16.10.100 --pod-network-cidr=192.168.0.0/16 Sau khi lệnh chạy xong xuôi, chạy tiếp nhiều lệnh nó đề xuất chạy sau khi khởi tạo- để chxay tệp tin cấu hình bảo đảm trình kubectl trên thiết bị này liên kết Cluster

mkdir -p $HOME/.kubesubởi cp -i /etc/kubernetes/admin.conf $HOME/.kube/configsubởi chown $(id -u):$(id -g) $HOME/.kube/config Tiếp kia, nó đòi hỏi setup một Plugin mạng trong các Plugin tại addon, ở đây vẫn chọn caliteo, đề nghị chạy lệnh sau để thiết lập nó

kubectl apply -f https://docs.projectcalico.org/v3.10/manifests/caliteo.yaml Gõ vài lệnh sau để kiểm tra

# tin tức clusterkubectl cluster-info# Các node vào clusterkubectl get nodes# Các pod đang chạy vào toàn bộ các namespacekubectl get pods -A

*
Vậy là vẫn bao gồm Cluster với 1 node!

Cấu hình kubectl lắp thêm trạm truy vấn cho các Cluster

Chương thơm trình client kubectl là nguyên lý mẫu lệnh liên kết cùng can hệ với các Cluster Kubernetes, thường Lúc thiết lập Kubernetes hồ hết fan cũng thiết lập luôn luôn kubectl như phần trên trên, trong cả thiết bị sở hữu Docker Desktop đã và đang có kubectl. Tất nhiên, chúng ta bao gồm cài đặt kubectl bên trên một lắp thêm ko Docker, ko Kubernetes với mục đích chỉ sử dụng nó liên kết mang đến hệ thống Cluster từ bỏ xa. Nếu ao ước sở hữu nghỉ ngơi thứ tự do điều đó coi trên Intall kubectl

File thông số kỹ thuật lệnh kubectl

khi thực hiện kubectl, thì nó gọi file thông số kỹ thuật sinh sống đường truyền $HOME/.kube/config để biết các thông số kỹ thuật để liên kết mang đến Cluster. ($HOME là thỏng mục nơi bắt đầu dành riêng cho user đang hoạt động, để tìm hiểu đúng đắn gõ lệnh emang đến $HOME) - tài khoản root thì chính là /root/.kube/config

Trsống lại trang bị Host, để xem câu chữ thông số kỹ thuật kubectl gõ lệnh

kubectl config view Tại thứ master sinh hoạt trên, có tệp tin cấu hình cho tại /root/.kube/config, ta copy tệp tin cấu hình này ra giữ thành file config-mycluster (không ghi đtrần vào config hiện thời của dòng sản phẩm HOST)

scp root
172.16.10.100:/etc/kubernetes/admin.conf ~/.kube/config-mycluster (Nhớ ráng đường dẫn theo user của bạn)

Vậy bên trên sản phẩm của tớ đang xuất hiện 2 file cấu hình

/User/obatambeienwasirherbal.com/.kube/config-mycluster thông số kỹ thuật kết nối cho Cluster bắt đầu sinh sản ngơi nghỉ bên trên /User/obatambeienwasirherbal.com/.kube/config cấu hình kết nối mang đến Cluster cục bộ của phiên bản Kubernetes bao gồm sẵn của Docker

Nếu hy vọng trải nghiệm kubectl áp dụng ngay lập tức tệp tin cấu hình như thế nào kia, thì gán trở nên môi trường KUBECONFIG bằng băng thông file cấu hình, ví dụ sử dụng tệp tin cấu hình config-mycluster

export KUBECONFIG=/Users/obatambeienwasirherbal.com/.kube/config-mycluster Sau lệnh đó thì kubectl sẽ dùng config-mycluster để sở hữu thông tin liên kết mang đến, tuy thế ngôi trường hòa hợp này chỉ có hiệu lực trong một phiên làm việc, ví dụ nếu khách hàng đóng terminal và msinh sống lại thì lại cần thiết lập lại trở thành môi trường xung quanh nhỏng bên trên.

Sử dụng các context trong thông số kỹ thuật kubectl

(hãy tắt terminal với msinh sống lại nhằm KUBECONFIG không hề tác dụng)

lúc chúng ta coi văn bản config với lệnh kubectl config view, các bạn thấy rằng nó knhị báo có những mục cluster là ban bố của cluster cùng với tên, user ban bố user được đăng nhập, context là ngữ cảnh thực hiện, mỗi ngữ cảnh mang tên trong số ấy có thông báo user cùng cluster.

*

Ở tệp tin trên bạn thấy mục current-context là context cùng với tên docker-desktop, Tức là liên kết đến cluster có tên docker-desktop với user là docker-desktop

Giờ các bạn sẽ tiến hành phối kết hợp 2 file: config cùng config-mycluster thành 1 với lưu lại trở lại config.

export KUBECONFIG=~/.kube/config:~/.kube/config-myclusterkubectl config view --flatten > ~/.kube/config_tempmv ~/.kube/config_temp ~/.kube/config Vậy nên vào tệp tin cấu hình đã bao gồm những ngữ cảnh khác biệt nhằm sử dụng, đóng terminal với mlàm việc lại rồi gõ lệnh, tất cả những ngữ cảnh nào

*

Ký hiệu * là cho thấy context ngày nay, nếu còn muốn chuyển thao tác làm việc sang trọng context mang tên kubernetes-admin
kubernetes Bởi vậy sử dụng context, giúp bạn lưu với biến đổi thuận tiện các loại liên kết mang đến những cluster của bạn

Cài đặt các node worker - kubernetes

Tạo thư mục kubernetes-centos7/worker1 với kubernetes-centos7/worker2 nhằm cấu hình, tạo các tệp tin Vagrantfile vào thỏng mục tương ứng với nội dung

kubernetes-centos7/worker1/Vagranttệp tin

# -*- mode: ruby -*-# vi: phối ft=ruby :Vagrant.configure("2") do |config| config.vm.box = "centos/7" config.vm.network "private_network", ip: "172.16.10.101" config.vm.hostname = "worker1.xtl" config.vm.provider "virtualbox" vị |vb| vb.name = "worker1.xtl" vb.cpus = 1 vb.memory = "1024" over config.vm.provision "shell", path: "./../install-docker-kube.sh" config.vm.provision "shell", inline: >/etc/hosts kubernetes-centos7/worker2/Vagranttệp tin # -*- mode: ruby -*-# vi: phối ft=ruby :# -*- mode: ruby -*-# vi: phối ft=ruby : Vagrant.configure("2") vì chưng |config| config.vm.box = "centos/7" config.vm.network "private_network", ip: "172.16.10.102" config.vm.hostname = "worker2.xtl" config.vm.provider "virtualbox" do |vb| vb.name = "worker2.xtl" vb.cpus = 1 vb.memory = "1024" over config.vm.provision "shell", path: "./../install-docker-kube.sh" config.vm.provision "shell", inline: >/etc/hosts Sau đó vào cụ thể từng thư mục, thực hiện lệnh vagrant up để sản xuất nhì vật dụng ảo bao gồm thiết lập docker với kubernetes, đồ vật ảo có tên với ip tương xứng worker1.xtl (172.16.10.101), worker2.xtl (172.16.10.102)

Kết nối Node vào Cluster

Hãy vào máy node master (bằng SSH ssh root
172.16.10.100). Thực hiện tại lệnh sau cùng với Cluster để lấy lệnh kết nối

kubeadm token create --print-join-commvà

*
Nó cho nội dung lệnh kubeadm join ... triển khai lệnh này bên trên những node worker thì node worker đã nối vào Cluster

SSH vào máy worker1, work2 với thực hiện kết nối

*

Giờ đánh giá các node gồm vào Cluster

kubectl get nodes

*

Tổng kết lại

Đến phía trên các bạn đã biết khởi tạo ra một Cluster từ bỏ Docker Destop hay là 1 Cluster tinh vi 3 node thực trúc, tuy nhiên quy trình thiết lập vẫn chưa hoàn thành, các điều khoản phải nhằm tiện lợi thao tác làm việc cùng với Kubernetes sẽ liên tục nghỉ ngơi bài xích sau, dẫu vậy hiện giờ chúng ta sẽ biết các lệnh:

# khởi chế tác một Clusterkubeadm init --apiserver-advertise-address=172.16.10.100 --pod-network-cidr=192.168.0.0/16# Cài đặt đồ họa mạng calico áp dụng vày những Podkubectl apply -f https://docs.projectcalico.org/v3.10/manifests/caliteo.yaml# Thông tin clusterkubectl cluster-info# Các node (máy) trong clusterkubectl get nodes# Các pod (cất container) đang làm việc trong toàn bộ các namespacekubectl get pods -A# Xem câu chữ thông số kỹ thuật bây giờ của kubectlkubectl config view# Thiết lập tệp tin thông số kỹ thuật kubectl áp dụng cho một phiên thao tác bây chừ của termianlexport KUBECONFIG=/Users/obatambeienwasirherbal.com/.kube/config-mycluster# Gộp tệp tin cấu hình kubectlexport KUBECONFIG=~/.kube/config:~/.kube/config-myclusterkubectl config view --flatten > ~/.kube/config_tempmv ~/.kube/config_temp ~/.kube/config# Các ngữ chình họa hiện bao gồm trong configkubectl config get-contexts# Đổi ngữ chình ảnh thao tác làm việc (kết nối mang lại cluster nào)kubectl config use-context kubernetes-admin
kubernetes# Lấy mã liên kết vào Clusterkubeadm token create --print-join-command# node worker liên kết vào Clusterkubeadm join 172.16.10.100:6443 --token 5ajhhs.atikwelbpr0 ...
Kubernetes là gì?Các yếu tố KubernetesTạo Kubernetes ClusterKubernetes trong Docker DesktopTạo Kubernetes Cluster trả chỉnhCài đặt thiết bị MasterCấu hình kubectl từ HOSTCài đặt những node worker