国基北盛-openstack-容器云-环境搭建
前言
本篇文章內實驗內容為國基北盛試點版賽題內容,時間是2020年底的資料和其他省現狀可能不太相符,但是學習的內容并不會有太大差距,之前在csdn上寫過一篇,但是太過簡便,并且沒有記錄完整的做題過程,本次再寫一篇,將會按照官方提供的手冊進行實驗。
歡迎來我的個人博客逛逛
實驗環境
系統說明:利用openstack私有云部分所搭建的環境,創建兩臺云主機進行部署k8s集群環境。
運行環境:CentOS7.5,內核版本>=3.10
Docker 版本: docker-ce-19.03.13
Kubernetes 版本: 1.18.1
環境所需鏡像文件:
Paas鏡像包點擊下載
系統鏡像包點擊下載
| master Node | master | 8G | 100G | 192.168.58.6 |
| Worker Node | node | 8G | 100G | 192.168.58.11 |
| Harbor | master | 8G | 100G | 192.168.58.6 |
1、基礎環境部署
安裝好CentOS7.5操作系統后,將官方提供的chinaskills_cloud_paas.iso鏡像文件上傳到master節點上,并將基礎系統鏡像掛載到master節點。
(如果使用的openstack平臺進行創建云主機部署k8s的話,可以不用將基礎系統鏡像掛載上,在云主機的yum中可以使用物理機器系統中的基礎軟件包)
注:本次實驗中所使用的yum源除k8s源之外都來自controller節點的ftp源,controller節點中所需鏡像文件及repo文件內容如下圖
####如果不會使用ftp源的,麻煩移步查看:https://blog.csdn.net/qq_45925514/article/details/111782965 [root@controller ~]# tree . ├── anaconda-ks.cfg ├── CentOS-7-x86_64-DVD-1804.iso ├── chinaskills_cloud_iaas.iso └── chinaskills_cloud_paas.iso #此鏡像會上傳至master節點# repo文件內容 [root@controller ~]# cat /etc/yum.repos.d/ftp.repo [centos] name = centos baseurl = ftp://controller/centos gpgcheck = 0 enabled = 1[iaas] name = iaas baseurl = ftp://controller/OpenStack/iaas-repo gpgcheck = 0 enabled = 1# 鏡像掛載目錄,centos目錄下掛載CentOS7.5,Openstack目錄下掛載的iaas [root@controller ~]# tree -L 2 /opt/ /opt/ ├── centos │ ├── CentOS_BuildTag │ ├── EFI │ ├── EULA │ ├── GPL │ ├── images │ ├── isolinux │ ├── LiveOS │ ├── Packages │ ├── repodata │ ├── RPM-GPG-KEY-CentOS-7 │ ├── RPM-GPG-KEY-CentOS-Testing-7 │ └── TRANS.TBL └── OpenStack├── iaas-repo└── images# 將pass鏡像包上傳至docker的master節點 [root@controller ~]# scp chinaskills_cloud_paas.iso 192.168.58.6:/opt/ The authenticity of host '192.168.58.6 (192.168.58.6)' can't be established. ECDSA key fingerprint is SHA256:FqTDtd28812m1IAFRjAbURuwoPQQRbq7gqGrEYh77C4. ECDSA key fingerprint is MD5:1a:d0:c6:aa:89:3a:1c:ed:c6:21:1d:dc:4d:63:e8:33. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '192.168.58.6' (ECDSA) to the list of known hosts. root@192.168.58.6's password:1.1、系統初始化配置(master和node)
1.1.1、修改主機名
docker-1主機名修改為master,docker-2主機名修改為node
# docker-1 [root@docker-1 ~]# hostnamectl set-hostname master [root@docker-1 ~]# bash [root@master ~]# hostnamectl Static hostname: masterIcon name: computer-vmChassis: vmMachine ID: 622ba110a69e24eda2dca57e4d306baaBoot ID: 51064e086449407987e3a42a3e53547bVirtualization: kvmOperating System: CentOS Linux 7 (Core)CPE OS Name: cpe:/o:centos:centos:7Kernel: Linux 3.10.0-862.2.3.el7.x86_64 #內核版本Architecture: x86-64# docker-2 [root@docker-2 ~]# hostnamectl set-hostname node [root@docker-2 ~]# bash [root@node ~]# hostnamectl Static hostname: nodeIcon name: computer-vmChassis: vmMachine ID: 622ba110a69e24eda2dca57e4d306baaBoot ID: 493bc83d9ecb4e36bba1cec5fd1c2328Virtualization: kvmOperating System: CentOS Linux 7 (Core)CPE OS Name: cpe:/o:centos:centos:7Kernel: Linux 3.10.0-862.2.3.el7.x86_64 #內核版本Architecture: x86-641.1.2、配置主機名映射
使用的云主機可能會存在兩個ip,一個的內網IP,一個外網ip,我們使用ssh工具連接的外網ip地址,云主機內部通信使用的內網ip地址,ip互通就沒有什么太大問題,用那個都可以,我這里使用的內網IP地址進行映射。
# master 節點 [root@master ~]# vim /etc/hosts [root@master ~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain610.0.0.6 master 10.0.0.21 node# 將hosts文件上傳到node [root@master ~]# scp /etc/hosts node:/etc/hosts The authenticity of host 'node (10.0.0.21)' can't be established. ECDSA key fingerprint is SHA256:FqTDtd28812m1IAFRjAbURuwoPQQRbq7gqGrEYh77C4. ECDSA key fingerprint is MD5:1a:d0:c6:aa:89:3a:1c:ed:c6:21:1d:dc:4d:63:e8:33. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'node,10.0.0.21' (ECDSA) to the list of known hosts. hosts 100% 190 1.6KB/s 00:00 [root@node ~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain610.0.0.6 master 10.0.0.21 node檢查一下主機名映射是否成功
1.1.3、關閉防火墻和SElinux
在云主機中默認selinux和防火墻都是關閉的,如果使用的虛擬機或物理機,這步就需要做。
## 關閉iptables [root@master ~]# iptables -F [root@master ~]# iptables -X [root@master ~]# iptables -Z [root@master ~]# iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination [root@master ~]# iptables-save # Generated by iptables-save v1.4.21 on Tue Mar 15 08:10:58 2022 *filter :INPUT ACCEPT [33:1948] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [20:1936] COMMIT # Completed on Tue Mar 15 08:10:58 2022## 關閉SElinux [root@master ~]# sed -i 's/SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config # 修改配置環境 [root@master ~]# setenforce 0 # 臨時設置 setenforce: SELinux is disabled [root@master ~]# getenforce # 查看設置 Disabled## 關閉firewalld systemctl stop firewalld systemctl disable firewalld1.1.4、配置yum源
基礎環境部署中說過,基礎的鏡像源使用controller節點的ftp源,而paas源在本地搭建ftp,也使用ftp的,可以供node節點使用
## 上面我已經將paas的鏡像包傳到了master節點下## 掛載paas鏡像,并將鏡像中的文件復制到/opt下 [root@master opt]# ls chinaskills_cloud_paas.iso [root@master opt]# mount chinaskills_cloud_paas.iso /mnt/ mount: /dev/loop0 is write-protected, mounting read-only [root@master opt]# ll /mnt/ total 64 dr-xr-xr-x 1 root root 2048 Oct 23 2020 ChinaskillMall dr-xr-xr-x 1 root root 2048 Oct 23 2020 ChinaskillProject dr-xr-xr-x 1 root root 2048 Oct 23 2020 docker-compose dr-xr-xr-x 1 root root 2048 Oct 23 2020 harbor dr-xr-xr-x 1 root root 6144 Oct 23 2020 images -r-xr-xr-x 1 root root 3049 Oct 21 2020 k8s_harbor_install.sh -r-xr-xr-x 1 root root 5244 Oct 21 2020 k8s_image_push.sh -r-xr-xr-x 1 root root 1940 Oct 21 2020 k8s_master_install.sh -r-xr-xr-x 1 root root 3055 Oct 21 2020 k8s_node_install.sh dr-xr-xr-x 1 root root 20480 Oct 23 2020 kubernetes-repo dr-xr-xr-x 1 root root 14336 Oct 23 2020 plugins dr-xr-xr-x 1 root root 2048 Oct 23 2020 yaml [root@master opt]# cp -rf /mnt/* /opt/## master節點 [root@master opt]# mv /etc/yum.repos.d/* /home/ #備份原 yum文件 [root@master opt]# vim /etc/yum.repos.d/ftp.repo [centos] name = centos baseurl = ftp://controller/centos #這里使用的是controller節點的源,如果沒有做controller節點的主機名映射,就需要將controller改成ip地址,建議使用IP gpgcheck = 0 enabled = 1[k8s] name = kubernetes-repo baseurl = file:///opt/kubernetes-repo gpgcheck = 0 enabled = 1## 刷新源緩存 [root@master opt]# yum clean all && yum makecache Loaded plugins: fastestmirror Cleaning repos: centos k8s Cleaning up everything Maybe you want: rm -rf /var/cache/yum, to also free up space taken by orphaned data from disabled or removed repos Cleaning up list of fastest mirrors Loaded plugins: fastestmirror Determining fastest mirrors centos | 3.6 kB 00:00:00 k8s | 3.0 kB 00:00:00 (1/7): centos/group_gz | 166 kB 00:00:00 (2/7): centos/filelists_db | 3.1 MB 00:00:00 (3/7): centos/primary_db | 3.1 MB 00:00:00 (4/7): centos/other_db | 1.3 MB 00:00:00 (5/7): k8s/filelists_db | 138 kB 00:00:00 (6/7): k8s/primary_db | 161 kB 00:00:00 (7/7): k8s/other_db | 80 kB 00:00:00 Metadata Cache Created## 安裝vsftp服務,在master節點開啟ftp源 [root@master opt]# yum install -y tree net-tools vsftpd Installed:tree.x86_64 0:1.6.0-10.el7 vsftpd.x86_64 0:3.0.2-27.el7 Updated:net-tools.x86_64 0:2.0-0.25.20131004git.el7 ## 啟動vsftpd服務,配置vsftp配置文件,設置opt為匿名訪問的根目錄 [root@master opt]# echo 'anon_root=/opt' >> /etc/vsftpd/vsftpd.conf [root@master opt]# cat /etc/vsftpd/vsftpd.conf | grep anon_root anon_root=/opt [root@master opt]# systemctl start vsftpd [root@master opt]# systemctl enable vsftpd Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.## 修改ftp.repo文件,k8s源路徑改為ftp [root@master opt]# cat /etc/yum.repos.d/ftp.repo | grep baseurl baseurl = ftp://controller/centos baseurl = ftp://master/kubernetes-repo## 再次重建緩存 [root@master opt]# yum clean all && yum makecache Loaded plugins: fastestmirror Cleaning repos: centos k8s Cleaning up everything ... Metadata Cache Created## 將配置好的repo文件傳到node節點上 [root@node ~]# mv /etc/yum.repos.d/* /home/ #備份node節點上的yum文件 [root@master opt]# scp /etc/yum.repos.d/ftp.repo node:/etc/yum.repos.d/ #從master節點上傳ftp.repo到node節點 ftp.repo 100% 176 120.6KB/s 00:00 [root@node ~]# ls /etc/yum.repos.d/ # 查看 ftp.repo [root@node ~]# yum clean all && yum makecache # 重建緩存 Loaded plugins: fastestmirror Cleaning repos: centos k8s Cleaning up everything ... Metadata Cache Created## 列出 repo 軟件包個數 [root@node ~]# yum repolist Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile repo id repo name status centos centos 3,971 k8s kubernetes-repo 168 repolist: 4,1391.2、部署Harbor倉庫
使用腳本 k8s_harbor_install.sh 自動化部署harbor倉庫-----等待10m
[root@master opt]# ./k8s_harbor_install.sh ## 腳本中會安裝docker-ce 、docker-compose部署完成
圖中給出的是內網的訪問地址,我們是無法在瀏覽器直接訪問的,我們使用外網的IP進行訪問Harbor倉庫即可
# Harbor 默認賬號:admin # Harbor 默認密碼:Harbor123451.3、上傳鏡像到Harbor倉庫
使用腳本 k8s_image_push.sh 將paas中準備好的鏡像全部推送到我們的倉庫中去,使用的時候直接從我們的倉庫拉取鏡像,速度更快
## 鏡像tar包都在/opt/images下 [root@master opt]# ./k8s_image_push.sh # 推送鏡像到Harbor倉庫中 輸入鏡像倉庫地址(不加http/https): 192.168.58.6 輸入鏡像倉庫用戶名: admin 輸入鏡像倉庫用戶密碼: Harbor12345 您設置的倉庫地址為: 192.168.58.6,用戶名: admin,密碼: xxx 是否確認(Y/N): y鏡像全部推送完成,在Harbor平臺 項目–>library 中可以查看到上傳的鏡像
1.4、部署Kubernetes集群
執行腳本 k8s_master_install.sh 自動化部署K8s部署
[root@master opt]# ./k8s_master_install.shToken用于登錄web端平臺時的身份驗證,登錄地址:https://IP:30000
現在集群中只有master節點,還沒有加入node節點,需要再執行下一個腳本將node節點加入到集群中
1.5、將node節點加入集群
將腳本上傳到node節點上,并執行腳本 k8s_node_install.sh
[root@master opt]# scp k8s_node_install.sh node:/opt/ k8s_node_install.sh 100% 3055 1.7MB/s 00:00 [root@node opt]# ./k8s_node_install.shnode節點加入集群完成后,可以在k8s的儀表盤上看到有兩個節點了,也可以使用命令查看集群節點
到此,容器云的搭建部分就完成了。
總結
以上是生活随笔為你收集整理的国基北盛-openstack-容器云-环境搭建的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 夏季 肝病患者养生保健重点在哪 请详解
- 下一篇: 蓝牙耳机气传导哪个牌子好,试试这几款不入