CentOS上安裝Kubernetes集羣(二)安裝Docker

採用docker作爲容器運行(目前業界主流與共識)

1. 必要的一些系統工具

# yum install -y yum-utils device-mapper-persistent-data lvm2

2. 添加docker源

# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

可以採用國內的鏡像加速服務,參照kubernetes的官方文檔,這裏使用阿里的鏡像在CentOS上的安裝作爲說明(作此筆記的時候嘗試過華爲、騰訊和電子科大的kubernetes好像版本沒有阿里的新,就暫時先用阿里的來做實驗了)。

3. 更新並安裝 Docker-CE

在線環境安裝

# yum makecache fast
# yum -y install docker-ce

此處根據默認是docker源文件的配置安裝的是最新穩定版,但很有可能不能通過最新的kubernetes的認證。因此,我們採用下面的方式來選擇安裝版本,特別是再生產環境中。

1) 查找倉庫中的版本:

# yum list docker-ce.x86_64 --showduplicates | sort -r
Loading mirror speeds from cached hostfile
Loaded plugins: branch, fastestmirror, langpacks
...
dockdr-ce.x86_64            18.09.9.ce-1.el7.centos            docker-ce-stable
...
docker-ce.x86_64            17.03.1.ce-1.el7.centos            docker-ce-stable
docker-ce.x86_64            17.03.0.ce-1.el7.centos            docker-ce-stable
Available Packages

2) 安裝指定版本的Docker-CE

VERSION 例如上面的 18.09.9.ce.1-1.el7.centos

# yum -y install docker-ce-18.09.9 docker-ce-cli-18.09.9

離線環境安裝

如果是離線安裝可以使用Everthing的哪個ISO進行依賴庫的安裝,但安裝的docker版本比較老,不過問題也不大。當然也可以先在能夠聯網的主機上將需要的rpm打包下載,然後拷貝到離線環境中進行安裝,關鍵過程如下:

1) 使用yum命令下載離線包

# yum install docker-ce-18.09.9 docker-ce-cli-19.09.9 --downloadonly --downloaddir=/home/<your_account>/

2) 在離線環境中安裝(按照如下順序進行安裝)

安裝基礎的依賴包

# rpm -ivh checkpolicy-2.5-8.el7.x86_64.rpm
# rpm -ivh libcgroup-0.41-20.el7.x86_64.rpm
# rpm -ivh libseccomp-2.3.1-3.el7.x86_64.rpm
# rpm -ivh libsemanage-python-2.5-14.el7.x86_64.rpm
# rpm -ivh audit-libs-python-2.8.4-4.el7.x86_64.rpm
# rpm -ivh setools-libs-3.3.8-4.el7.x86_64.rpm
# rpm -ivh python-IPy-0.75-6.el7.noarch.rpm
# rpm -ivh policycoreutils-python-2.5-29.el7.x86_64.rpm

安裝docker-ce的軟件包

# rpm -ivh container-selinux-2.99-1.el7_6.noarch.rpm
# rpm -ivh containerd.io-1.2.6-3.3.el7.x86_64.rpm
# rpm -ivh docker-ce-cli-18.09.7-3.el7.x86_64.rpm
# rpm -ivh docker-ce-18.09.7-3.el7.x86_64.rpm

說明:
1.上述安裝的軟件包版本可能不一樣,根據安裝時的具體實際情況來,不必臺糾結。
2.在掛載Eerything的ISO作爲軟件源的情況下,可以直接使用yum命令對拷貝到本地的container-selinux、containerd.io、docker-ce-cli、docker-ce的軟件包,安裝上述順序進行安裝。

ARM64架構下的安裝

目前非x86_64的平臺也多了起來,如華爲的鯤鵬服務器,而且某些地方也有用武之地,這裏以ARM64架構爲例(之後的非x86_64架構也是)進行說明。

ARM64裸機

如果有一臺ARM64的裸機,那麼就直接安裝對應版本的CentOS執行上面的命令即可。

ARM64模擬器

沒有ARM64的裸機,可以使用模擬器來代替,反正主要是下載包。再次感謝Linux的好處:),本人現在的主機就是安裝的Fedora的發行版,如果要模擬ARM64,只需安裝相應的架構包可以,如下:

sudo dnf install qemu-system-aarch64

該命令可以自行解決包依賴問題,然後在使用Virtual Machine Manager這個程序創建虛擬機的時候,高級選項中就會多出aarch64,即ARM64的架構,選擇並點擊下一步,之後執行後續的安裝步驟根新建amd64架構的就一樣了。除此外,還可以使用qemu-system-XXX來安裝模擬其它架構的虛擬機,有點激動,呵呵呵。

4. Docker其它設置

創建目錄/etc/docker

# mkdir /etc/docker

創建daemon.json

# cat > /etc/docker/daemon.json <<EOF
{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2",
  "storage-opts": [ "overlay2.override_kernel_check=true"],
  "bip":"172.31.0.1/16",
  "insecure-registry":["registry.your.domain"]
}
EOF

其中

  • “bip”定義docker0(用於容器和物理網絡連接的網橋)的網關地址,不能與物理局域網地址衝突!
  • “insecure-registry"定義了本地私有倉庫地址

創建服務目錄(官方文檔,還不知道幹什麼用)

# mkdir -p /etc/systemd/system/docker.service.d

修改服務器啓動文件

修改docker服務文件(/usr/lib/systemd/system/docker.service),docker的iptables的FORWARD默認策略爲DROP,可能會影響集羣通信,需要修改原有的docker.service文件,在"ExecStart=/usr/bin/docker"之後新增一行:

ExecStartPost=/usr/sbin/iptables -P FORWARD ACCEPT

開啓Docker服務

# systemctl daemon-reload
# systemctl start docker
# systemctl enable docker
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章