在阿里云服務器怎么安裝部署docker+Kubernetes(K8s)

2024-2-10 / 0 評論 / 1149 閱讀

 

前言

 

Docker全面介紹

Docker 是一個商業容器化平臺和運行時,可幫助開發人員構建、部署和運行容器。它使用客戶端-服務器架構,通過單個 API 提供簡單的命令和自動化。
使用 Docker,開發人員可以通過編寫 Dockerfile 來創建容器化應用程序,這本質上是構建容器映像的秘訣。然后,Docker 提供了一組工具來構建和管理這些容器映像,使開發人員能夠更輕松地以一致且可重復的方式打包和部署應用程序。
這些容器映像可以在任何支持容器的平臺上運行,例如 Kubernetes、Docker Swarm、Mesos 或 HashiCorp Nomad。Docker的平臺使開發人員可以更輕松地創建和管理這些容器鏡像,從而簡化了跨不同環境構建和部署應用程序的過程。

 

Kubernetes(K8s) 全面介紹

Kubernetes,也稱為 K8s,是一個著名的開源平臺,旨在跨網絡資源集群編排容器運行時系統。它可以獨立運行,也可以與其他容器化工具(例如 Docker)結合使用。

Kubern[]etes 提供了一種實[]用的解決方案[],用于在一臺[]機器上管理一[]組容器,以減[]少網絡開銷并[]優化資源利用[]率。例如,一[]個容器集可以[]由應用服務器[]、Redis[] 緩存和 SQL 數據庫組成。[]相比之下,D[]ocker 容器被設計為[]每個容器運行[]一個進程。

隨著容器的激[]增,組織最終[]可能會擁有數[]百甚至數千個[]容器,這使得[]運營團隊必須[]自動化容器部[]署、網絡、可[]擴展性和可用[]性。這導致了[]容器編排市場[]的出現。

開發人員選擇 Kubernetes 是因為它具有廣泛的功能、龐大且不斷增長的開源支持工具生態系統,以及它支持各種云服務提供商和工作的能力。所有主要公共云提供商,包括 Amazon Web Services (AWS)、Google Cloud、IBM Cloud 和 Microsoft Azure,都提供完全托管的 Kubernetes 服務,這凸顯了其在全行業的受歡迎程度。

Docker 和 Kubernetes 之間的區別

Docker 和 Kubernetes 都是容器化生態系統中的關鍵組件,具有不同的用途。Docker 主要用于創建和執行容器,而 Kubernetes 用于編排和自動化跨主機集群的容器部署、擴展和管理。
Docker 提供了一種簡單有效的容器化方法,而 Kubernetes 提供了自動擴展、自我修復和容器部署等高級功能。

 

安裝部署docker+Kubernetes(K8s)過程

 

1.查閱K8S+docker的版本號對應關系

1.1.打開github;搜索kubernetes項目(github地址:https://github.com/)

1.2.打開項目中CHANGELOG文件夾,其中就有CHANGELOG-XXX.md版本號文件,如下截圖所示:

 

20210618214906218.png

 

1.3.打開kubernetes版本號文件,ctrl+f搜索"docker version",便可以查詢到所有可用版本號如下截圖所示:

 

20210618214942782.png

 

 

2.將所需的安裝包下載到本地(進行本地化安裝)

 

3.機器的準備(其中包括機器版本及配置)

3.1.查看linux機器版本號命令:cat /proc/version

我的版本號:Linux version 3.10.0-1062.18.1.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC) ) #1 SMP Tue Mar 17 23:49:17 UTC 2020

3.2.機器的配置

cpu:4C 內存:4G 硬盤:32G

查看cpu(邏輯):cat /proc/cpuinfo | grep ‘processor’ | wc -l

查看cpu(物理):cat /proc/cpuinfo | grep ‘physical id’ | sort | uniq | wc -l

查看內存總數:cat /proc/meminfo | grep MemTotal

查看硬盤大?。篸f -h

 

4.環境的準備

4.1. 設置主機名與時區

timedatectl set-timezone Asia/Shanghai #都要執行

hostnamectl set-hostname master #194執行

hostnamectl set-hostname node1 #195執行

hostnamectl set-hostname node2 #196執行

 

4.2. 添加hosts網絡主機配置,三臺虛擬機都要設置

vim /etc/hosts

192.168.10.194 master

192.168.10.195 node1

192.168.10.196 node2

 

4.3. 關閉防火墻,三臺虛擬機都要設置,生產環境跳過這一步

sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/g’ /etc/selinux/config

setenforce 0

systemctl disable firewalld

systemctl stop firewalld

 

5.K8S的安裝及加載K8S鏡像

5.1. 將鏡像包上傳至服務器每個節點

mkdir /usr/local/k8s-install

cd /usr/local/k8s-install

XFTP上傳安裝文件

 

5.2. 按每個Centos上安裝Docker

tar -zxvf docker-ce-18.09.tar.gz

cd docker

yum localinstall -y *.rpm

 

systemctl start docker

systemctl enable docker

 

5.3. 確保從cgroups均在同一個從groupfs

#cgroups是control groups的簡稱,它為Linux內核提供了一種任務聚集和劃分的機制,通過一組參數集合將一些任務組織成一個或多個子系統。

#cgroups是實現IaaS虛擬化(kvm、lxc等),PaaS容器沙箱(Docker等)的資源管理控制部分的底層基礎。

#子系統是根據cgroup對任務的劃分功能將任務按照一種指定的屬性劃分成的一個組,主要用來實現資源的控制。

#在cgroup中,劃分成的任務組以層次結構的形式組織,多個子系統形成一個數據結構中類似多根樹的結構。cgroup包含了多個孤立的子系統,每一個子系統代表單一的資源

 

docker info | grep cgroup

 

如果不是groupfs,執行下列語句

 

cat < /etc/docker/daemon.json{“exec-opts”: [“native.cgroupdriver=cgroupfs”]}EOFsystemctl daemon-reload && systemctl restart docker

 

5.4. 安裝kubeadm

kubeadm是集群部署工具

 

cd /usr/local/k8s-install/kubernetes-1.14tar -zxvf kube114-rpm.tar.gzcd kube114-rpmyum localinstall -y *.rpm

 

5.5. 關閉交換區

 

swapoff -avi /etc/fstab#swap一行注釋

 

5.6. 配置網橋

 

cat < /etc/sysctl.d/k8s.confnet.bridge.bridge-nf-call-ip6tables = 1net.bridge.bridge-nf-call-iptables = 1EOFsysctl --system

 

5.7. 通過鏡像安裝k8s

 

cd /usr/local/k8s-install/kubernetes-1.14docker load -i k8s-114-images.tar.gzdocker load -i flannel-dashboard.tar.gz

 

 

6.安裝kubeadm并創建K8S集群

6.1. master主服務器配置

 

kubeadm init --kubernetes-version=v1.14.1 --pod-network-cidr=10.244.0.0/16mkdir -p $HOME/.kubesudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/configsudo chown ( i d − u ) : (id -u):(id−u):(id -g) $HOME/.kube/configkubectl get nodes#查看存在問題的podkubectl get pod --all-namespaces#設置全局變量#安裝flannel網絡組件kubectl create -f kube-flannel.yml

 

6.2. 加入NODE節點

 

kubeadm join 192.168.10.194:6443 --token 0b15nw.w9xq58pcttqq647k–discovery-token-ca-cert-hash sha256:23db3094dc9ae1335b25692717c40e24b1041975f6a43da9f43568f8d0dbac72

 

如果忘記

在master 上執行kubeadm token list 查看 ,在node上運行(如下ip、端口、token都是master對應的值,切記)

 

kubeadm join 192.168.10.194:6443 --token 0b15nw.w9xq58pcttqq647k --discovery-token-unsafe-skip-ca-verificationkubectl get nodes

 

6.3. Master開啟儀表盤

 

kubectl apply -f kubernetes-dashboard.yamlkubectl apply -f admin-role.yamlkubectl apply -f kubernetes-dashboard-admin.rbac.yamlkubectl -n kube-system get svchttp://192.168.10.194:32000 訪問

 

 

7.遇到的坑

7.1.最開始在自己本地的虛擬機進行安裝的由于分配的cpu為1,結果執行6.1步驟的時候報錯了,錯誤提示很明確最少需要2cpu

7.2.后來在以上機器配置中進行5.2中安裝docker遇到如下版本號沖突問題,于是百度下載對應版本號的包替換即可(讓版本號一致)

 

錯誤:軟件包:policycoreutils-python-2.5-29.el7_6.1.x86_64 (/policycoreutils-python-2.5-29.el7_6.1.x86_64)

需要:policycoreutils = 2.5-29.el7_6.1

已安裝: policycoreutils-2.5-33.el7.x86_64 (@anaconda)

policycoreutils = 2.5-33.el7

可用: policycoreutils-2.5-34.el7.x86_64 (base)

policycoreutils = 2.5-34.el7

錯誤:軟件包:audit-libs-python-2.8.4-4.el7.x86_64 (/audit-libs-python-2.8.4-4.el7.x86_64)

需要:audit-libs(x86-64) = 2.8.4-4.el7

已安裝: audit-libs-2.8.5-4.el7.x86_64 (@anaconda)

audit-libs(x86-64) = 2.8.5-4.el7

 

7.3.執行6.3加入node節點的時候,在node機器輸入的命令一直是node機器的ip結果總是報錯;后來才恍然大悟,需要用master機器的ip

 

7.4.執行6.3加入node節點的時候,token過期,導致無法加入

如果遇到如下問題,可能是token過期了,需要執行 kubeadm token create重新獲取token

 

[preflight] Running pre-flight checks[preflight] Reading configuration from the cluster…[preflight] FYI: You can look at this config file with ‘kubectl -n kube-system get cm kubeadm-config -oyaml’error execution phase preflight: unable to fetch the kubeadm-config ConfigMap: failed to get config map: Unauthorized

 

評論一下?

OωO
取消
主站蜘蛛池模板: 久久伊人中文无码| 无码AV动漫精品一区二区免费| 免费无码成人AV片在线在线播放| 少妇人妻av无码专区| 久久亚洲AV成人无码国产电影| 国产精品视频一区二区三区无码| 无码被窝影院午夜看片爽爽jk| 日韩精品无码人妻免费视频| 99国产精品无码| 人妻丰满av无码中文字幕| 中文字幕日韩精品无码内射| 蕾丝av无码专区在线观看| 亚洲AV无码乱码国产麻豆穿越 | 日韩精品无码人妻免费视频| 成人无码区免费A∨直播| 国产精品亚洲一区二区无码| 少妇精品无码一区二区三区| 日韩精品无码一区二区三区免费 | 无码毛片AAA在线| 亚洲AV无码一区二区二三区软件 | 中文无码人妻有码人妻中文字幕| 久热中文字幕无码视频| 亚洲AV无码久久精品蜜桃| 亚洲AV无码国产精品麻豆天美| 免费无码又爽又高潮视频| 久久亚洲中文字幕无码| 精品无码成人片一区二区98| 在线观看无码AV网站永久免费| 精品无码成人片一区二区98| 熟妇无码乱子成人精品| 一本色道无码不卡在线观看| 亚洲男人在线无码视频| 无码人妻久久一区二区三区免费 | 亚洲人成网亚洲欧洲无码| 日韩人妻无码一区二区三区99| 亚洲精品午夜无码电影网| 亚洲AV无码国产精品麻豆天美| 亚洲国产精品无码专区在线观看 | 13小箩利洗澡无码视频网站免费| 无码国产精品一区二区高潮| 无码不卡亚洲成?人片|