【目錄】
(1)k8s快速介紹
(2)硬件虛擬機環境Ubuntu18.10-server安裝
(3)Docker-CE安裝及配置
(4)Kubernetes 安裝及部署
(5)創建企業Kubernetes多主機集群環境
(6)Kubernetes集群mysql應用實例
(7)Kubernetes集群tomcat應用集群實例
(8)Kubernetes集群beego新聞發布web系統集群實例
【資源下載】
完整教程markdown下載 提取碼: 92hy
kubernetes(k8s)2小時快速部署教程視頻 提取碼:dk4i
kubernetes-Master-Node虛擬機完整鏡像文件 提取碼: 2wf8
課程相關其他相關安裝包及鏡像 提取碼: nkfj
3.1 Docker簡介
3. 1.1 docker介紹
-
docker是什么 ?
Docker 是一個開源的應用容器引擎,是直接運行在宿主操作系統之上的一個容器,使用沙箱機制完全虛擬出一個完整的操作,容器之間不會有任何接口,從而讓容器與宿主機之間、容器與容器之間隔離的更加徹底。每個容器會有自己的權限管理,獨立的網絡與存儲棧,及自己的資源管理能,使同一臺宿主機上可以友好的共存多個容器。
-
docker與虛擬機對比
如果物理機是一幢住宅樓,虛擬機就是大樓中的一個個套間,而容器技術就是套間里的一個個隔斷。
docker1.png
-
虛擬化技術不同
- VMware Workstation、VirtualBoX
硬件輔助虛擬化:(Hardware-assisted Virtualization)是指通過硬件輔助支持模擬運行環境,使客戶機操作系統可以獨立運行,實現完全虛擬化的功能。
- Docker
操作系統層虛擬化:(OS-level virtualization)這種技術將操作系統內核虛擬化,可以允許使用者空間軟件實例被分割成幾個獨立的單元,在內核中運行,而不是只有一個單一實例運行。這個軟件實例,也被稱為是一個容器(containers)、虛擬引擎(Virtualization engine)、虛擬專用服務器(virtual private servers)。每個容器的進程是獨立的,對于使用者來說,就像是在使用自己的專用服務器。
<font color="red">以上兩種虛擬化技術都屬于軟件虛擬化,在現有的物理平臺上實現對物理平臺訪問的截獲和模擬。在軟件虛擬化技術中,有些技術不需要硬件支持;而有些軟件虛擬化技術,則依賴硬件支持。</font>
-
應用場景不同
- 虛擬機更擅長于徹底隔離整個運行環境。如: 云服務提供商通常采用虛擬機技術隔離不同的用戶。
- Docker通常用于隔離不同的應用,例如前端,后端以及數據庫。
-
資源的使用率不同
虛擬機啟動需要數分鐘,而Docker容器可以在數毫秒內啟動。由于沒有臃腫的從操作系統,Docker可以節省大量的磁盤空間以及其他系統資源。
-
docker的版本
- Docker-CE -> 社區版
- Stable 版
- 穩定版, 一個季度更新一次
- Edge 版
- 一個月更新一般
- Stable 版
- Docker-EE
- 企業版
- 收費的
- Docker-CE -> 社區版
3.2 配置國內源
3.2.1 基礎準備
-
Docker 要求 Ubuntu 系統的內核版本高于 3.10 ,查看本頁面的前提條件來驗證你的 Ubuntu 版本是否支持 Docker。
uname -r 4.18.0-21-generic(主版本必須保持一致)
-
安裝
curl
apt-get update && apt-get install -y curl telnet wget man \ apt-transport-https \ ca-certificates \ software-properties-common vim
-
查看新版本號
- Ubuntu 18.10
$ lsb_release -c Codename: cosmic
-
查看確認國內源
$ cp /etc/apt/sources.list /etc/apt/sources.list.bak $ cat /etc/apt/sources.list
3.2.2 在線安裝Docker-ce(本教程不推薦)
(建議下面的手動安裝方式,因為在線可能會出現版本不一致)
注意: 該國內源目前提供 18.09
版本,與k8s不符。k8s推薦安裝Docker ce 18.06
-
安裝GPG秘鑰和添加國內鏡像
$ curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
添加國內源頭
$ add-apt-repository \ "deb https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu \ $(lsb_release -cs) \ stable"
- 更新國內源路徑
apt update
3.安裝查看版本指令
apt-get install -y apt-show-versions
4.查看docker-ce版本號
apt-show-versions -a docker-ce
- 在線安裝
Docker-ce
sudo apt-get update && apt-get install -y docker-ce
注意到當前安裝的版本是 `docker-ce_5%3a18.09.6~3-0~ubuntu-cosmic_amd64.deb`
3.2.3 手動安裝Docker(離線安裝)
下載
docker-ce_18.06.1\~ce\~3-0\~ubuntu_amd64.deb
或者
課程相關其他相關安裝包及鏡像 提取碼: nkfj
也提供。上傳到上述文件到待安裝服務器
master
登錄待安裝服務器,切換到root賬戶
dpkg -i docker-ce_18.06.1\~ce\~3-0\~ubuntu_amd64.deb
如果提示錯誤
dpkg: error: dpkg frontend is locked by another process
說明已經有其他進程在使用dpkg安裝程序
sudo rm /var/lib/dpkg/lock
即可。
如果提示錯誤
itcast@master:~/package$ sudo dpkg -i docker-ce_18.06.1~ce~3-0~ubuntu_amd64.deb
[sudo] password for itcast:
Selecting previously unselected package docker-ce.
(Reading database ... 100647 files and directories currently installed.)
Preparing to unpack docker-ce_18.06.1~ce~3-0~ubuntu_amd64.deb ...
Unpacking docker-ce (18.06.1~ce~3-0~ubuntu) ...
dpkg: dependency problems prevent configuration of docker-ce:
docker-ce depends on libltdl7 (>= 2.4.6); however:
Package libltdl7 is not installed.
dpkg: error processing package docker-ce (--install):
dependency problems - leaving unconfigured
Processing triggers for man-db (2.8.4-2) ...
Processing triggers for systemd (239-7ubuntu10) ...
Errors were encountered while processing:
docker-ce
表示當前docker-ce 依賴系統libltd17庫,安裝就可以了
$ apt-get install -y libltdl7
- docker version
Client:
Version: 18.06.1-ce
API version: 1.38
Go version: go1.10.3
Git commit: e68fc7a
Built: Tue Aug 21 17:24:56 2018
OS/Arch: linux/amd64
Experimental: false
Server:
Engine:
Version: 18.06.1-ce
API version: 1.38 (minimum version 1.12)
Go version: go1.10.3
Git commit: e68fc7a
Built: Tue Aug 21 17:23:21 2018
OS/Arch: linux/amd64
Experimental: false
確保版本號是 18.06
`
3.3 啟動Docker-ce
- 開機并啟動docker
sudo systemctl enable docker
sudo systemctl start docker
- 重啟,登錄確認
docker
已經運行
itcast@ubuntu:~$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
- 下載
Alpine
鏡像熱身一下Docker
~$ sudo docker run -it --rm alpine:latest sh
輸出內容如下,我們在Docker
容器中測試三個命令,分別是
- `date`
- `time`
- `uname -r`
itcast@ubuntu:~$ sudo docker run -it --rm alpine:latest sh
Unable to find image 'alpine:latest' locally
latest: Pulling from library/alpine
e7c96db7181b: Pull complete
Digest: sha256:769fddc7cc2f0a1c35abb2f91432e8beecf83916c421420e6a6da9f8975464b6
Status: Downloaded newer image for alpine:latest
/ # date
Mon Jun 10 07:56:01 UTC 2019
/ # time
BusyBox v1.29.3 (2019-01-24 07:45:07 UTC) multi-call binary.
Usage: time [-vpa] [-o FILE] PROG ARGS
Run PROG, display resource usage when it exits
-v Verbose
-p POSIX output format
-f FMT Custom format
-o FILE Write result to FILE
-a Append (else overwrite)
/ # uname -r
4.18.0-10-generic
3.4 創建Docker用戶組并添加當前用戶
使用您的用戶登錄Linux然后執行如下操作,用戶組docker可能已經存在。
如果使用普通用戶目前是無法使用docker指令的
itcast@master:~$ docker ps
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.38/containers/json: dial unix /var/run/docker.sock: connect: permission denied
我們需要將當前的普通用戶添加到當前的docker用戶組中
sudo groupadd docker
sudo usermod -aG docker $USER
exit
重新登錄使用普通用戶登錄:
itcast@master:~$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
就可以使用了。
3.5 申請阿里云鏡像加速器
如果不申請阿里云私人專屬鏡像加速器,鼓勵復制如下本人申請的私人專屬鏡像加速器,直接使用即可。
https://ozcouv1b.mirror.aliyuncs.com
申請步驟如下
在阿里云注冊自己賬戶
找到容器鏡像服務,參考網址如下
https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
點開左側菜單鏡像中心—>鏡像加速器
右側加速器地址,即使私人專屬的鏡像加速器地址,點擊復制
粘貼到一個文本文件留存
3.6 docker配置國內鏡像加速器
目的 : 為了下載docker鏡像更快
您可以通過修改daemon
配置文件/etc/docker/daemon.json
來使用加速器。
創建/etc/docker/daemon.json
文件,內容如下:
{
"registry-mirrors": ["https://ozcouv1b.mirror.aliyuncs.com"]
}
重啟docker服務
# 重載所有修改過的配置文件
sudo systemctl daemon-reload
# 重啟Docker服務
sudo systemctl restart docker
關于作者:
作者:Aceld(劉丹冰)
簡書號:IT無崖子
mail: danbing.at@gmail.com
github: https://github.com/aceld
原創書籍gitbook: http://legacy.gitbook.com/@aceld
原創聲明:未經作者允許請勿轉載, 如果轉載請注明出處