【目錄】
(1)k8s快速介紹
(2)硬件虛擬機(jī)環(huán)境Ubuntu18.10-server安裝
(3)Docker-CE安裝及配置
(4)Kubernetes 安裝及部署
(5)創(chuàng)建企業(yè)Kubernetes多主機(jī)集群環(huán)境
(6)Kubernetes集群mysql應(yīng)用實(shí)例
(7)Kubernetes集群tomcat應(yīng)用集群實(shí)例
(8)Kubernetes集群beego新聞發(fā)布web系統(tǒng)集群實(shí)例
【資源下載】
完整教程markdown下載 提取碼: 92hy
kubernetes(k8s)2小時(shí)快速部署教程視頻 提取碼:dk4i
kubernetes-Master-Node虛擬機(jī)完整鏡像文件 提取碼: 2wf8
課程相關(guān)其他相關(guān)安裝包及鏡像 提取碼: nkfj
3.1 Docker簡(jiǎn)介
3. 1.1 docker介紹
-
docker是什么 ?
Docker 是一個(gè)開源的應(yīng)用容器引擎巩检,是直接運(yùn)行在宿主操作系統(tǒng)之上的一個(gè)容器屎勘,使用沙箱機(jī)制完全虛擬出一個(gè)完整的操作,容器之間不會(huì)有任何接口仲吏,從而讓容器與宿主機(jī)之間、容器與容器之間隔離的更加徹底蝌焚。每個(gè)容器會(huì)有自己的權(quán)限管理裹唆,獨(dú)立的網(wǎng)絡(luò)與存儲(chǔ)棧,及自己的資源管理能只洒,使同一臺(tái)宿主機(jī)上可以友好的共存多個(gè)容器许帐。
-
docker與虛擬機(jī)對(duì)比
如果物理機(jī)是一幢住宅樓,虛擬機(jī)就是大樓中的一個(gè)個(gè)套間毕谴,而容器技術(shù)就是套間里的一個(gè)個(gè)隔斷成畦。
docker1.png
-
虛擬化技術(shù)不同
- VMware Workstation距芬、VirtualBoX
硬件輔助虛擬化:(Hardware-assisted Virtualization)是指通過(guò)硬件輔助支持模擬運(yùn)行環(huán)境,使客戶機(jī)操作系統(tǒng)可以獨(dú)立運(yùn)行循帐,實(shí)現(xiàn)完全虛擬化的功能框仔。
- Docker
操作系統(tǒng)層虛擬化:(OS-level virtualization)這種技術(shù)將操作系統(tǒng)內(nèi)核虛擬化,可以允許使用者空間軟件實(shí)例被分割成幾個(gè)獨(dú)立的單元拄养,在內(nèi)核中運(yùn)行离斩,而不是只有一個(gè)單一實(shí)例運(yùn)行。這個(gè)軟件實(shí)例瘪匿,也被稱為是一個(gè)容器(containers)跛梗、虛擬引擎(Virtualization engine)、虛擬專用服務(wù)器(virtual private servers)柿顶。每個(gè)容器的進(jìn)程是獨(dú)立的茄袖,對(duì)于使用者來(lái)說(shuō),就像是在使用自己的專用服務(wù)器嘁锯。
<font color="red">以上兩種虛擬化技術(shù)都屬于軟件虛擬化宪祥,在現(xiàn)有的物理平臺(tái)上實(shí)現(xiàn)對(duì)物理平臺(tái)訪問(wèn)的截獲和模擬。在軟件虛擬化技術(shù)中家乘,有些技術(shù)不需要硬件支持蝗羊;而有些軟件虛擬化技術(shù),則依賴硬件支持仁锯。</font>
-
應(yīng)用場(chǎng)景不同
- 虛擬機(jī)更擅長(zhǎng)于徹底隔離整個(gè)運(yùn)行環(huán)境耀找。如: 云服務(wù)提供商通常采用虛擬機(jī)技術(shù)隔離不同的用戶。
- Docker通常用于隔離不同的應(yīng)用业崖,例如前端野芒,后端以及數(shù)據(jù)庫(kù)。
-
資源的使用率不同
虛擬機(jī)啟動(dòng)需要數(shù)分鐘双炕,而Docker容器可以在數(shù)毫秒內(nèi)啟動(dòng)狞悲。由于沒有臃腫的從操作系統(tǒng),Docker可以節(jié)省大量的磁盤空間以及其他系統(tǒng)資源妇斤。
-
docker的版本
- Docker-CE -> 社區(qū)版
- Stable 版
- 穩(wěn)定版, 一個(gè)季度更新一次
- Edge 版
- 一個(gè)月更新一般
- Stable 版
- Docker-EE
- 企業(yè)版
- 收費(fèi)的
- Docker-CE -> 社區(qū)版
3.2 配置國(guó)內(nèi)源
3.2.1 基礎(chǔ)準(zhǔn)備
-
Docker 要求 Ubuntu 系統(tǒng)的內(nèi)核版本高于 3.10 摇锋,查看本頁(yè)面的前提條件來(lái)驗(yàn)證你的 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
-
查看新版本號(hào)
- Ubuntu 18.10
$ lsb_release -c Codename: cosmic
-
查看確認(rèn)國(guó)內(nèi)源
$ cp /etc/apt/sources.list /etc/apt/sources.list.bak $ cat /etc/apt/sources.list
3.2.2 在線安裝Docker-ce(本教程不推薦)
(建議下面的手動(dòng)安裝方式站超,因?yàn)樵诰€可能會(huì)出現(xiàn)版本不一致)
注意: 該國(guó)內(nèi)源目前提供 18.09
版本荸恕,與k8s不符。k8s推薦安裝Docker ce 18.06
-
安裝GPG秘鑰和添加國(guó)內(nèi)鏡像
$ curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
添加國(guó)內(nèi)源頭
$ add-apt-repository \ "deb https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu \ $(lsb_release -cs) \ stable"
- 更新國(guó)內(nèi)源路徑
apt update
3.安裝查看版本指令
apt-get install -y apt-show-versions
4.查看docker-ce版本號(hào)
apt-show-versions -a docker-ce
- 在線安裝
Docker-ce
sudo apt-get update && apt-get install -y docker-ce
注意到當(dāng)前安裝的版本是 `docker-ce_5%3a18.09.6~3-0~ubuntu-cosmic_amd64.deb`
3.2.3 手動(dòng)安裝Docker(離線安裝)
下載
docker-ce_18.06.1\~ce\~3-0\~ubuntu_amd64.deb
或者
課程相關(guān)其他相關(guān)安裝包及鏡像 提取碼: nkfj
也提供死相。上傳到上述文件到待安裝服務(wù)器
master
登錄待安裝服務(wù)器融求,切換到root賬戶
dpkg -i docker-ce_18.06.1\~ce\~3-0\~ubuntu_amd64.deb
如果提示錯(cuò)誤
dpkg: error: dpkg frontend is locked by another process
說(shuō)明已經(jīng)有其他進(jìn)程在使用dpkg安裝程序
sudo rm /var/lib/dpkg/lock
即可。
如果提示錯(cuò)誤
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
表示當(dāng)前docker-ce 依賴系統(tǒng)libltd17庫(kù)算撮,安裝就可以了
$ 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
確保版本號(hào)是 18.06
`
3.3 啟動(dòng)Docker-ce
- 開機(jī)并啟動(dòng)docker
sudo systemctl enable docker
sudo systemctl start docker
- 重啟生宛,登錄確認(rèn)
docker
已經(jīng)運(yùn)行
itcast@ubuntu:~$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
- 下載
Alpine
鏡像熱身一下Docker
~$ sudo docker run -it --rm alpine:latest sh
輸出內(nèi)容如下施掏,我們?cè)?code>Docker容器中測(cè)試三個(gè)命令,分別是
- `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 創(chuàng)建Docker用戶組并添加當(dāng)前用戶
使用您的用戶登錄Linux然后執(zhí)行如下操作茅糜,用戶組docker可能已經(jīng)存在。
如果使用普通用戶目前是無(wú)法使用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
我們需要將當(dāng)前的普通用戶添加到當(dāng)前的docker用戶組中
sudo groupadd docker
sudo usermod -aG docker $USER
exit
重新登錄使用普通用戶登錄:
itcast@master:~$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
就可以使用了素挽。
3.5 申請(qǐng)阿里云鏡像加速器
如果不申請(qǐng)阿里云私人專屬鏡像加速器蔑赘,鼓勵(lì)復(fù)制如下本人申請(qǐng)的私人專屬鏡像加速器,直接使用即可预明。
https://ozcouv1b.mirror.aliyuncs.com
申請(qǐng)步驟如下
在阿里云注冊(cè)自己賬戶
找到容器鏡像服務(wù)缩赛,參考網(wǎng)址如下
https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
點(diǎn)開左側(cè)菜單鏡像中心—>鏡像加速器
右側(cè)加速器地址,即使私人專屬的鏡像加速器地址撰糠,點(diǎn)擊復(fù)制
粘貼到一個(gè)文本文件留存
3.6 docker配置國(guó)內(nèi)鏡像加速器
目的 : 為了下載docker鏡像更快
您可以通過(guò)修改daemon
配置文件/etc/docker/daemon.json
來(lái)使用加速器酥馍。
創(chuàng)建/etc/docker/daemon.json
文件,內(nèi)容如下:
{
"registry-mirrors": ["https://ozcouv1b.mirror.aliyuncs.com"]
}
重啟docker服務(wù)
# 重載所有修改過(guò)的配置文件
sudo systemctl daemon-reload
# 重啟Docker服務(wù)
sudo systemctl restart docker
關(guān)于作者:
作者:Aceld(劉丹冰)
簡(jiǎn)書號(hào):IT無(wú)崖子
mail: danbing.at@gmail.com
github: https://github.com/aceld
原創(chuàng)書籍gitbook: http://legacy.gitbook.com/@aceld
原創(chuàng)聲明:未經(jīng)作者允許請(qǐng)勿轉(zhuǎn)載, 如果轉(zhuǎn)載請(qǐng)注明出處