前言:本文写于2020/11/29 15:25分,写这篇文章的目的有三:
1、对专科两年所学做个总结
2、让未来能有机会参加竞赛的同学有个参考
3、浮躁的社会,需要静下心来思考author:caiaoqiang
date:2020/11/29
云计算平台的拓扑图如图1所示,IP地址规划如下图所示。
一、私有云部署运维
1 划分compute磁盘
[root@compute ~]# parted /dev/md126
GNU Parted 3.1
Using /dev/md126
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) p
Model: Linux Software RAID Array (md)
Disk /dev/md126: 3801GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: pmbr_boot
Number Start End Size File system Name Flags
1 1049kB 2097kB 1049kB bios_grub
2 2097kB 1076MB 1074MB xfs
3 1076MB 1083GB 1082GB lvm
(parted) mkpart cinder 1084G 1184G
(parted) mkpart swift 1185G 1285G
(parted) p
Model: Linux Software RAID Array (md)
Disk /dev/md126: 3801GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: pmbr_boot
Number Start End Size File system Name Flags
1 1049kB 2097kB 1049kB bios_grub
2 2097kB 1076MB 1074MB xfs
3 1076MB 1083GB 1082GB lvm
4 1084GB 1184GB 100GB cinder
5 1185GB 1285GB 100GB swift
[root@compute ~]# mkfs.xfs /dev/md126p4
meta-data=/dev/md126p6 isize=512 agcount=8, agsize=30496 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=243968, imaxpct=25
= sunit=32 swidth=64 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=1056, version=2
= sectsz=512 sunit=32 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@compute ~]# mkfs.xfs /dev/md126p5
meta-data=/dev/md126p6 isize=512 agcount=8, agsize=30496 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=243968, imaxpct=25
= sunit=32 swidth=64 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=1056, version=2
= sectsz=512 sunit=32 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
2 配置网络、主机名
修改和添加/etc/sysconfig/network-scripts/ifcfg-enp*(具体的网口)文件。
(1)controller节点
配置网络:
enp8s0: 192.168.100.10
DEVICE=enp8s0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=static
IPADDR=192.168.100.10
PREFIX=24
GATEWAY=192.168.100.1
enp9s0: 192.168.200.10
DEVICE=enp9s0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=static
IPADDR=192.168.200.10
PREFIX=24
配置主机名:
# hostnamectl set-hostname controller
按ctrl+d 退出 重新登陆
(2)compute 节点
配置网络:
enp8s0: 192.168.100.20
DEVICE=enp8s0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=static
IPADDR=192.168.100.20
PREFIX=24
GATEWAY=192.168.100.1
enp9s0: 192.168.200.20
DEVICE=enp9s0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=static
IPADDR=192.168.200.20
PREFIX=24
配置主机名:
# hostnamectl set-hostname compute
按ctrl+d 退出 重新登陆
3 配置yum源
#Controller和compute节点
(1)yum源备份
#rm -rf /etc/yum.repos.d/*
(2)创建repo文件
【controller】
在/etc/yum.repos.d创建centos.repo源文件
# vi /etc/yum.repos.d/local.repo
[centos]
name=centos
baseurl=file:///opt/centos
gpgcheck=0
enabled=1
[iaas]
name=iaas
baseurl=file:///opt/iaas/iaas-repo
gpgcheck=0
enabled=1
【compute】
在/etc/yum.repos.d创建centos.repo源文件
# vi /etc/yum.repos.d/local.repo
[root@compute ~]# vi /etc/yum.repos.d/local.repo
[centos]
name=centos
baseurl=ftp://controller/centos
gpgcheck=0
enabled=1
[iaas]
name=iaas
baseurl=ftp://controller/iaas/iaas-repo
gpgcheck=0
enabled=1
主机名映射
[root@controller ~]# vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.100.10 controller
192.168.100.20 compute
[root@compute ~]# vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.100.10 controller
192.168.100.20 compute
(3)挂载iso文件
【挂载CentOS-7-x86_64-DVD-1804.iso】
[root@controller ~]# mount -o loop CentOS-7-x86_64-DVD-1804.iso /mnt/
[root@controller ~]# mkdir /opt/centos
[root@controller ~]# mkdir /opt/iaas
[root@controller ~]# cp -rvf /mnt/* /opt/centos/
[root@controller ~]# umount /mnt/
【挂载XianDian-IaaS-v2.4.iso】
[root@controller ~]# mount -o loop chinaskills_cloud_iaas.iso /mnt/
mount: /dev/loop0 is write-protected, mounting read-only
[root@controller ~]# cp -rvf /mnt/* /opt/iaas
(4)搭建ftp服务器,开启并设置自启
[root@controller ~]# yum install vsftpd -y
[root@controller ~]# vi /etc/vsftpd/vsftpd.conf
添加anon_root=/opt/
保存退出
[root@controller ~]# systemctl start vsftpd
[root@controller ~]# systemctl enable vsftpd
(5)配置防火墙和Selinux
【controller/compute】
编辑selinux文件
# vi /etc/selinux/config
SELINUX=permissive
[root@controller ~]# setenforce 0
关闭防火墙并设置开机不自启
# systemctl stop firewalld.service
# systemctl disable firewalld.service
(6)清除缓存,验证yum源
【controller/compute】
# yum clean all
# yum list
4 编辑环境变量
# controller和compute节点
# yum install iaas-xiandian -y
编辑文件/etc/xiandian/openrc.sh,此文件是安装过程中的各项参数,根据每项参数上一行的说明及服务器实际情况进行配置。
Vim模式删除所有内容:%d
##--------------------system Config--------------------##
##Controller Server Manager IP. example:x.x.x.x
HOST_IP=192.168.100.10
##Controller HOST Password. example:000000
HOST_PASS=000000
##Controller Server hostname. example:controller
HOST_NAME=controller
##Compute Node Manager IP. example:x.x.x.x
HOST_IP_NODE=192.168.100.20
##Compute HOST Password. example:000000
HOST_PASS_NODE=000000
##Compute Node hostname. example:compute
HOST_NAME_NODE=compute
##--------------------Chrony Config-------------------##
##Controller network segment IP. example:x.x.0.0/16(x.x.x.0/24)
network_segment_IP=192.168.100.0/24
##--------------------Rabbit Config ------------------##
##user for rabbit. example:openstack
RABBIT_USER=openstack
##Password for rabbit user .example:000000
RABBIT_PASS=000000
##--------------------MySQL Config---------------------##
##Password for MySQL root user . exmaple:000000
DB_PASS=000000
##--------------------Keystone Config------------------##
##Password for Keystore admin user. exmaple:000000
DOMAIN_NAME=demo
ADMIN_PASS=000000
DEMO_PASS=000000
##Password for Mysql keystore user. exmaple:000000
KEYSTONE_DBPASS=000000
##--------------------Glance Config--------------------##
##Password for Mysql glance user. exmaple:000000
GLANCE_DBPASS=000000
##Password for Keystore glance user. exmaple:000000
GLANCE_PASS=000000
##--------------------Nova Config----------------------##
##Password for Mysql nova user. exmaple:000000
NOVA_DBPASS=000000
##Password for Keystore nova user. exmaple:000000
NOVA_PASS=000000
##--------------------Neturon Config-------------------##
##Password for Mysql neutron user. exmaple:000000
NEUTRON_DBPASS=000000
##Password for Keystore neutron user. exmaple:000000
NEUTRON_PASS=000000
##metadata secret for neutron. exmaple:000000
METADATA_SECRET=000000
##Tunnel Network Interface. example:x.x.x.x
INTERFACE_IP=192.168.100.10
##External Network Interface. example:eth1
INTERFACE_NAME=enp8s0
##External Network The Physical Adapter. example:provider
Physical_NAME=provider
##First Vlan ID in VLAN RANGE for VLAN Network. exmaple:101
minvlan=2
##Last Vlan ID in VLAN RANGE for VLAN Network. example:200
maxvlan=300
##--------------------Cinder Config--------------------##
##Password for Mysql cinder user. exmaple:000000
CINDER_DBPASS=000000
##Password for Keystore cinder user. exmaple:000000
CINDER_PASS=000000
##Cinder Block Disk. example:md126p3
BLOCK_DISK=md126p4
##--------------------Swift Config---------------------##
##Password for Keystore swift user. exmaple:000000
SWIFT_PASS=000000
##The NODE Object Disk for Swift. example:md126p4.
OBJECT_DISK=md126p5
##The NODE IP for Swift Storage Network. example:x.x.x.x.
STORAGE_LOCAL_NET_IP=192.168.100.20
##--------------------Heat Config----------------------##
##Password for Mysql heat user. exmaple:000000
HEAT_DBPASS=000000
##Password for Keystore heat user. exmaple:000000
HEAT_PASS=000000
##--------------------Zun Config-----------------------##
##Password for Mysql Zun user. exmaple:000000
ZUN_DBPASS=000000
##Password for Keystore Zun user. exmaple:000000
ZUN_PASS=000000
##Password for Mysql Kuryr user. exmaple:000000
KURYR_DBPASS=000000
##Password for Keystore Kuryr user. exmaple:000000
KURYR_PASS=000000
##--------------------Ceilometer Config----------------##
##Password for Gnocchi ceilometer user. exmaple:000000
CEILOMETER_DBPASS=000000
##Password for Keystore ceilometer user. exmaple:000000
CEILOMETER_PASS=000000
##--------------------AODH Config----------------##
##Password for Mysql AODH user. exmaple:000000
AODH_DBPASS=000000
##Password for Keystore AODH user. exmaple:000000
AODH_PASS=000000
##--------------------Barbican Config----------------##
##Password for Mysql Barbican user. exmaple:000000
BARBICAN_DBPASS=000000
##Password for Keystore Barbican user. exmaple:000000
BARBICAN_PASS=000000
# scp /etc/xiandian/openrc.sh root@compute://etc/xiandian/
The authenticity of host 'compute (192.168.100.20)' can't be established.
ECDSA key fingerprint is SHA256:RShHiJfjbyvHe3iH59hzhlPJAA2GdgjbtyvrgvbBiQ4.
ECDSA key fingerprint is MD5:a1:50:ff:a2:d0:6a:5b:2d:f0:ee:07:d5:f4:12:d3:71.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'compute,192.168.100.20' (ECDSA) to the list of known hosts.
root@compute's password:
openrc.sh 100% 3881 2.5MB/s 00:00
Compute节点修改tunnel IP
5 通过脚本安装私有云平台
以下脚本按顺序执行!
Controller:
iaas-pre-host.sh
iaas-install-mysql.sh
iaas-install-keystone.sh
iaas-install-glance.sh
iaas-install-nova-controller.sh
iaas-install-neutron-controller.sh
iaas-install-dashboard.sh
iaas-install-nova-compute.sh(修改配置之后运行)
iaas-install-cinder-controller.sh
iaas-install-swift-controller.sh
Compute:
iaas-install-nova-compute.sh
iaas-install-neutron-compute.sh
iaas-install-cinder-compute.sh
iaas-install-swift-compute.sh
6 创建云主机
流程:
(1)管理员->资源管理->云主机类型->创建云主机类型
(2)管理员->网络->网络->创建网络
(2)项目->网络->安全组->管理规则->添加规则(ICMP、TCP、UDP)
(3)项目->资源管理->云主机->创建云主机
7 云平台创建云主机
1 创建云主机类型
2 创建云主机网络
选择vlan模式,网络要和外网网卡一个网段,段ID要选择外网网卡所在网段
2.1绑定固定网络
3 修改安全组
4 上传镜像
[root@controller ~]# source /etc/keystone/admin-openrc.sh
[root@controller ~]# glance image-create --name "CentOS7.5" --disk-format qcow2 --container-format bare --progress < /opt/iaas/images/CentOS_7.5_x86_64_XD.qcow2
[=============================>] 100%
+------------------+--------------------------------------+
…
5 创建云主机
6 测试连接
8 Openstack命令创建云主机
1 创建云主机类型
使用命令创建一个名为 test ,ID为 6 ,内存为 2048MB ,磁盘为 10GB ,vcpu数量为 2 的云主机类型。
nova flavor-create test 6 2048 10 2
+----+------+-----------+------+-----------+------+-------+-------------+-----------+-------------+
| ID | Name | Memory_MB | Disk | Ephemeral | Swap | VCPUs | RXTX_Factor | Is_Public | Description |
+----+------+-----------+------+-----------+------+-------+-------------+-----------+-------------+
| 6 | test | 2048 | 10 | 0 | | 2 | 1.0 | True | - |
+----+------+-----------+------+-----------+------+-------+-------------+-----------+-------------
2 创建云主机网络
思路:查看云平台创建好的网络,查看它的详细信息,用命令创建的时候,指定参数即可!
[root@controller ~]# neutron net-create --router:external --provider:network_type vlan --provider:physical_network provider --provider:segmentation_id 100 ext
neutron CLI is deprecated and will be removed in the future. Use openstack CLI instead.
Created a new network:
+---------------------------+--------------------------------------+
| Field | Value |
+---------------------------+--------------------------------------+
| admin_state_up | True |
| availability_zone_hints | |
| availability_zones | |
| created_at | 2020-12-01T00:22:18Z |
| description | |
| id | 37edbae1-9478-472e-a681-8587fbb464fb |
| ipv4_address_scope | |
| ipv6_address_scope | |
| is_default | False |
| mtu | 1500 |
| name | ext |
| port_security_enabled | True |
| project_id | 213eb58e471448cf969fd925382bc08d |
| provider:network_type | vlan |
| provider:physical_network | provider |
| provider:segmentation_id | 100 |
| revision_number | 5 |
| router:external | True |
| shared | False |
| status | ACTIVE |
| subnets | |
| tags | |
| tenant_id | 213eb58e471448cf969fd925382bc08d |
| updated_at | 2020-12-01T00:22:19Z |
+---------------------------+--------------------------------------+
创建子网
[root@controller ~]# neutron subnet-create ext 192.168.100.0/24 --name sub_ext --gateway 192.168.100.1
neutron CLI is deprecated and will be removed in the future. Use openstack CLI instead.
Created a new subnet:
+-------------------+------------------------------------------------------+
| Field | Value |
+-------------------+------------------------------------------------------+
| allocation_pools | {"start": "192.168.100.2", "end": "192.168.100.254"} |
| cidr | 192.168.100.0/24 |
| created_at | 2020-12-01T00:28:39Z |
| description | |
| dns_nameservers | |
| enable_dhcp | True |
| gateway_ip | 192.168.100.1 |
| host_routes | |
| id | 0be6f045-08b2-459f-a989-b58863b1a29d |
| ip_version | 4 |
| ipv6_address_mode | |
| ipv6_ra_mode | |
| name | sub_ext |
| network_id | 37edbae1-9478-472e-a681-8587fbb464fb |
| project_id | 213eb58e471448cf969fd925382bc08d |
| revision_number | 0 |
| service_types | |
| subnetpool_id | |
| tags | |
| tenant_id | 213eb58e471448cf969fd925382bc08d |
| updated_at | 2020-12-01T00:28:39Z |
+-------------------+------------------------------------------------------+
3 创建云主机
[root@controller ~]# glance image-list
+--------------------------------------+-----------+
| ID | Name |
+--------------------------------------+-----------+
| db8a716d-0a2e-49eb-8892-681e7b6be41d | CentOS7.5 |
+--------------------------------------+-----------+
[root@controller ~]# neutron net-list
neutron CLI is deprecated and will be removed in the future. Use openstack CLI instead.
+--------------------------------------+------+----------------------------------+-------------------------------------------------------+
| id | name | tenant_id | subnets |
+--------------------------------------+------+----------------------------------+-------------------------------------------------------+
| 37edbae1-9478-472e-a681-8587fbb464fb | ext | 213eb58e471448cf969fd925382bc08d | 0be6f045-08b2-459f-a989-b58863b1a29d 192.168.100.0/24 |
| e0cad34b-b797-4790-98d1-450b1acbe232 | NET | 213eb58e471448cf969fd925382bc08d | fc0ed34b-d25c-4962-9e36-d9a7e9b7b9f7 192.168.200.0/24 |
+--------------------------------------+------+----------------------------------+-------------------------------------------------------+
[root@controller ~]# nova flavor-list
+--------------------------------------+------+-----------+------+-----------+------+-------+-------------+-----------+-------------+
| ID | Name | Memory_MB | Disk | Ephemeral | Swap | VCPUs | RXTX_Factor | Is_Public | Description |
+--------------------------------------+------+-----------+------+-----------+------+-------+-------------+-----------+-------------+
| 12688fda-6239-4058-b8cc-85b97e90eca3 | AAA | 8192 | 100 | 0 | | 8 | 1.0 | True | - |
| 6 | test | 2048 | 10 | 0 | | 2 | 1.0 | True | - |
| c5af1899-5ca2-4b5f-bf5e-b03d6e049f28 | BBB | 4200 | 50 | 0 | | 4 | 1.0 | True | - |
+--------------------------------------+------+-----------+------+-----------+------+-------+-------------+-----------+-------------+
[root@controller ~]# nova boot --flavor c5af1899-5ca2-4b5f-bf5e-b03d6e049f28 --image db8a716d-0a2e-49eb-8892-681e7b6be41d --nic net-id=e0cad34b-b797-4790-98d1-450b1acbe232 pc-cai
+--------------------------------------+--------------------------------------------------+
| Property | Value |
+--------------------------------------+--------------------------------------------------+
| OS-DCF:diskConfig | MANUAL |
| OS-EXT-AZ:availability_zone | |
| OS-EXT-SRV-ATTR:host | - |
| OS-EXT-SRV-ATTR:hostname | pc-cai |
| OS-EXT-SRV-ATTR:hypervisor_hostname | - |
| OS-EXT-SRV-ATTR:instance_name | |
| OS-EXT-SRV-ATTR:kernel_id | |
| OS-EXT-SRV-ATTR:launch_index | 0 |
| OS-EXT-SRV-ATTR:ramdisk_id | |
| OS-EXT-SRV-ATTR:reservation_id | r-q8pfr6gu |
| OS-EXT-SRV-ATTR:root_device_name | - |
| OS-EXT-SRV-ATTR:user_data | - |
| OS-EXT-STS:power_state | 0 |
| OS-EXT-STS:task_state | scheduling |
| OS-EXT-STS:vm_state | building |
| OS-SRV-USG:launched_at | - |
| OS-SRV-USG:terminated_at | - |
| accessIPv4 | |
| accessIPv6 | |
| adminPass | kmuX4hyXnv6N |
| config_drive | |
| created | 2020-12-01T00:38:47Z |
| description | - |
| flavor:disk | 50 |
| flavor:ephemeral | 0 |
| flavor:extra_specs | {} |
| flavor:original_name | BBB |
| flavor:ram | 4200 |
| flavor:swap | 0 |
| flavor:vcpus | 4 |
| hostId | |
| host_status | |
| id | 24192942-af87-444a-8145-f0cca1fc6880 |
| image | CentOS7.5 (db8a716d-0a2e-49eb-8892-681e7b6be41d) |
| key_name | - |
| locked | False |
| metadata | {} |
| name | pc-cai |
| os-extended-volumes:volumes_attached | [] |
| progress | 0 |
| security_groups | default |
| status | BUILD |
| tags | [] |
| tenant_id | 213eb58e471448cf969fd925382bc08d |
| updated | 2020-12-01T00:38:47Z |
| user_id | ea1193f0ce094069bbbbe22399c30929 |
+--------------------------------------+--------------------------------------------------+
4 创建云硬盘
建一个2G的硬盘名字为haha
[root@controller ~]# cinder create --name haha 2
+--------------------------------+--------------------------------------+
| Property | Value |
+--------------------------------+--------------------------------------+
| attachments | [] |
| availability_zone | nova |
| bootable | false |
| consistencygroup_id | None |
| created_at | 2020-12-01T00:48:15.000000 |
| description | None |
| encrypted | False |
| id | 0439bafc-2d9a-473c-8f38-e1ace00808a3 |
| metadata | {} |
| migration_status | None |
| multiattach | False |
| name | haha |
| os-vol-host-attr:host | None |
| os-vol-mig-status-attr:migstat | None |
| os-vol-mig-status-attr:name_id | None |
| os-vol-tenant-attr:tenant_id | 213eb58e471448cf969fd925382bc08d |
| replication_status | None |
| size | 2 |
| snapshot_id | None |
| source_volid | None |
| status | creating |
| updated_at | None |
| user_id | ea1193f0ce094069bbbbe22399c30929 |
| volume_type | None |
+--------------------------------+--------------------------------------+
挂载
[root@controller ~]# nova volume-attach 24192942-af87-444a-8145-f0cca1fc6880 0439bafc-2d9a-473c-8f38-e1ace00808a3
+----------+--------------------------------------+
| Property | Value |
+----------+--------------------------------------+
| device | /dev/vdb |
| id | 0439bafc-2d9a-473c-8f38-e1ace00808a3 |
| serverId | 24192942-af87-444a-8145-f0cca1fc6880 |
| volumeId | 0439bafc-2d9a-473c-8f38-e1ace00808a3 |
+----------+--------------------------------------+
登录查看挂载成功
4.1 RAID0
[root@pc-cai yum.repos.d]# cat ftp.repo
[centos]
name=centos
baseurl=ftp://192.168.100.10/centos
gpgcheck=0
enabled=1
安装mdadm命令
制作raid0
Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p):
Using default response p
Partition number (1-4, default 1):
First sector (2048-4194303, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-4194303, default 4194303): +100M
Partition 1 of type Linux and of size 100 MiB is set
Command (m for help): n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p):
Using default response p
Partition number (2-4, default 2):
First sector (206848-4194303, default 206848):
Using default value 206848
Last sector, +sectors or +size{K,M,G} (206848-4194303, default 4194303): +100M
Partition 2 of type Linux and of size 100 MiB is set
Command (m for help): w
The partition table has been altered!
[root@pc-cai yum.repos.d]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 253:0 0 50G 0 disk
└─vda1 253:1 0 50G 0 part /
vdb 253:16 0 2G 0 disk
├─vdb1 253:17 0 100M 0 part
└─vdb2 253:18 0 100M 0 part
[root@pc-cai yum.repos.d]# mdadm -Cv /dev/md0 -l 0 -n 2 /dev/vdb1 /dev/vdb2
mdadm: chunk size defaults to 512K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
[root@pc-cai yum.repos.d]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 253:0 0 50G 0 disk
└─vda1 253:1 0 50G 0 part /
vdb 253:16 0 2G 0 disk
├─vdb1 253:17 0 100M 0 part
│ └─md0 9:0 0 196M 0 raid0
└─vdb2 253:18 0 100M 0 part
└─md0 9:0 0 196M 0 raid0
[root@pc-cai yum.repos.d]# mkfs.ext4 /dev/md0
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
Stride=512 blocks, Stripe width=1024 blocks
50200 inodes, 200704 blocks
10035 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=33816576
25 block groups
8192 blocks per group, 8192 fragments per group
2008 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729
Allocating group tables: done
Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done
4.2 RAID1
[root@pc-cai yum.repos.d]# mdadm -Cv /dev/md1 -l 1 -n 2 /dev/vdb1 /dev/vdb2
mdadm: Note: this array has metadata at the start and
may not be suitable as a boot device. If you plan to
store '/boot' on this device please ensure that
your boot-loader understands md/v1.x metadata, or use
--metadata=0.90
mdadm: size set to 101376K
4.3 RAID5
[root@pc-cai yum.repos.d]# mdadm -Cv /dev/md5 -l 5 -n 3 /dev/vdb1 /dev/vdb2 /dev/vdb3
mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: chunk size defaults to 512K
mdadm: size set to 202752K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md5 started.
二、容器部署运维
1 Docker部署
双节点更改
配置主机名、映射
# hostnamectl set-hostname master
[root@master ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.200.3 master
192.168.200.4 node
配置yum源
将Chinaskill_Cloud_PaaS.iso镜像包上传至master节点。
master节点:
[root@master ~]# mount -o loop chinaskills_cloud_paas.iso /mnt
mount: /dev/loop0 is write-protected, mounting read-only
[root@master ~]# cp -rvf /mnt/* /opt
[root@master ~]# vi /etc/yum.repos.d/local.repo
[root@master ~]# cat !$
cat /etc/yum.repos.d/local.repo
[k8s]
name=k8s
baseurl=file:///opt/kubernetes-repo
gpgcheck=0
enabled=1
[centos]
name=centos
baseurl=ftp://192.168.100.10/centos
gpgcheck=0
enabled=1
[root@node ~]# cat /etc/yum.repos.d/ftp.repo
[k8s]
name=k8s
baseurl=ftp://master/kubernetes-repo
gpgcheck=0
enabled=1
[centos]
name=centos
baseurl=ftp://192.168.100.10/centos
gpgcheck=0
enabled=1
[root@master opt]# vi /etc/vsftpd/vsftpd.conf
[root@master opt]# systemctl restart vsftpd
[root@master opt]# systemctl enable vsftpd
[root@master ~]# cd /opt
[root@master opt]# ll
total 60
dr-xr-xr-x 5 root root 4096 Dec 1 01:26 ChinaskillMall
dr-xr-xr-x 13 root root 4096 Dec 1 01:26 ChinaskillProject
dr-xr-xr-x 2 root root 49 Dec 1 01:26 docker-compose
dr-xr-xr-x 2 root root 49 Dec 1 01:26 harbor
dr-xr-xr-x 2 root root 4096 Dec 1 01:27 images
-r-xr-xr-x 1 root root 3049 Dec 1 01:28 k8s_harbor_install.sh
-r-xr-xr-x 1 root root 5244 Dec 1 01:28 k8s_image_push.sh
-r-xr-xr-x 1 root root 1940 Dec 1 01:28 k8s_master_install.sh
-r-xr-xr-x 1 root root 3055 Dec 1 01:28 k8s_node_install.sh
dr-xr-xr-x 4 root root 12288 Dec 1 01:28 kubernetes-repo
dr-xr-xr-x 100 root root 8192 Dec 1 01:28 plugins
dr-xr-xr-x 4 root root 38 Dec 1 01:28 yaml
部署本地docker harbor
[root@master opt]# ./k8s_harbor_install.sh
上传镜像到docker harbor
[root@master opt]# ./k8s_image_push.sh
输入镜像仓库地址(不加http/https): 192.168.200.3
输入镜像仓库用户名: admin
输入镜像仓库用户密码: Harbor12345
您设置的仓库地址为: 192.168.200.3,用户名: admin,密码: xxx
是否确认(Y/N): y
1 Docker运维
1)制作Dockerfile
1) Mariadb
1.编写Dockerfile制作数据库MySQL镜像,生成镜像名为Chinaskillmall-mysql:v1.1,并推送其到私有仓库。具体要求如下:
[root@master mysqldockerfile]# ls
Dockerfile local.repo
[root@master mysqldockerfile]# cat local.repo
[centos]
name=centos
baseurl=ftp://192.168.100.10/centos
gpgcheck=0
enabled=1
[root@master mysqldockerfile]# cat Dockerfile
FROM centos:centos7.5.1804
MAINTAINER Chinaskill
RUN rm -fv /etc/yum.repos.d/*
ADD local.repo /etc/yum.repos.d/
RUN yum install -y mariadb-server
ENV C.LANG UTF-8
ENV MYSQL_ROOT_PASSWORD 123456
EXPOSE 3306
[root@master abc]# docker build -t mariadb:v1.0 ./
Sending build context to Docker daemon 3.072kB
Step 1/11 : FROM centos:centos7.5.1804
---> cf49811e3cdb
Step 2/11 : MAINTAINER Xiandian
---> Using cache
---> 74518c689e87
Step 3/11 : RUN rm -fv /etc/yum.repos.d/*
---> Using cache
---> fb28db3e3efc
Step 4/11 : ADD local.repo /etc/yum.repos.d/
---> Using cache
---> ea69ddd23320
...
2) Zookeeper
[root@master zookeeperdockerfile]# ll
total 213916
-rw-r–r-- 1 root root 324 Dec 1 13:44 Dockerfile
-r-xr-xr-x 1 root root 181365687 Dec 1 01:26 jdk-8u77-linux-x64.tar.gz
-r-xr-xr-x 1 root root 37676320 Dec 1 01:26 zookeeper-3.4.14.tar.gz
[root@master zookeeperdockerfile]# cat Dockerfile
FROM centos:centos7.5.1804
MAINTAINER chinaskill
ADD jdk-8u77-linux-x64.tar.gz /usr/local
ADD zookeeper-3.4.14.tar.gz /usr/local
ENV JAVA_HOME /usr/loal/jdk1.8.77
ENV GRE_HOME /usr/local/jre1.8.77
ENV ZOOKEEPER_HOME /usr/local/zookeeper-3.4.14
EXPOSE 2181
[root@master zookeeperdockerfile]# docker build -t zookeeper:2.0 ./
Sending build context to Docker daemon 219MB
Step 1/8 : FROM centos:centos7.5.1804
—> cf49811e3cdb
Step 2/8 : MAINTAINER chinaskill
—> Using cache
—> 0b29c01ef3cd
…
[root@master zookeeperdockerfile]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
zookeeper 2.0 c1ac00651464 5 seconds ago 625MB
mariadb 1.0 6e7398ba4904 56 minutes ago 395MB
192.168.200.3/library/mariadb 1.0 6e7398ba4904 56 minutes ago 395MB
jenkins/jenkins 2.262-centos f04839b3e211 6 weeks ago 638MB
3) Nginx
[root@master nginxdockerfile]# cat local.repo
[centos]
name=centos
baseurl=ftp://192.168.100.10/centos
gpgcheck=0
enabled=1
[root@master nginxdockerfile]# vim Dockerfile
FROM centos:centos7.5.1804
MAINTAINER chinskill2
RUN rm -fv /etc/yum.repos.d/*
ADD local.repo /etc/yum.repos.d/
RUN yum install -y nginx
RUN rm -rf /usr/local/nginx/html/*
ADD /opt/ChinaskillMall/dist /usr/local/nginx/html/
RUN systemctl restart nginx
RUN systemctl enable nginx
EXPOSE 80
2)部署dockercompose
4) 部署wordpress
在node1节点上从仓库中拉取mysql:latest和wordpress:latest镜像,创建/root/wproject/docker-compse.yaml文件,编排部署wordpress,并设置 restart策略。
[root@master wproject]# cat docker-compose.yaml
version: '3.3'
services:
db:
image: mysql:5.6
restart: always
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
查看是否部署成功:
[root@master ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
63a4923be97d wordpress:latest "docker-entrypoint.s…" About a minute ago Up About a minute 0.0.0.0:8000->80/tcp wproject_wordpress_1
03f6b91bc4c2 mysql:5.6 "docker-entrypoint.s…" About a minute ago Up About a minute 3306/tcp wproject_db_1
测试
5) 部署OWNCLOUND
[root@master ownclound]# ls
docker-compose.yaml
[root@master ownclound]# vim docker-compose.yaml
version: '3.3'
services:
db:
image: mysql:5.6
restart: always
environment:
MYSQL_ROOT_PASSWORD: ownclound
MYSQL_DATABASE: ownclound
MYSQL_USER: ownclound
MYSQL_PASSWORD: ownclound
ownclound:
depends_on:
- db
image: owncloud:latest
restart: always
container_name: ownclound
ports:
- '8001:80'
environment:
OWNCLOUND_DB_HOST: db:3306
ADMIN_USERNAME: admin
ADMIN_PASSWORD: admin
[root@master ownclound]# docker-compose up
Creating ownclound_db_1 ... done
Creating ownclound ... done
Attaching to ownclound_db_1, ownclound
db_1 | 2020-12-01 14:49:43+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 5.6.49-1debian9 started.
db_1 | 2020-12-01 14:49:43+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
db_1 | 2020-12-01 14:49:43+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 5.6.49-1debian9 started.
db_1 | 2020-12-01 14:49:43+00:00 [Note] [Entrypoint]: Initializing database files
db_1 | 2020-12-01 14:49:43 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
db_1 | 2020-12-01 14:49:43 0 [Note] Ignoring --secure-file-priv value as server is running with --bootstrap.
db_1 | 2020-12-01 14:49:43 0 [Note] /usr/sbin/mysqld (mysqld 5.6.49) starting as process 51 ...
db_1 | 2020-12-01 14:49:43 51 [Note] InnoDB: Using atomics to ref count buffer pool pages
db_1 | 2020-12-01 14:49:43 51 [Note] InnoDB: The InnoDB memory heap is disabled
db_1 | 2020-12-01 14:49:43 51 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
测试
6) 上传镜像到私有仓库
1、登录私有仓库
# docker login -u admin -p Harbor12345 192.168.200.3
[root@master opt]# docker login -u admin -p Harbor12345 192.168.200.3
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded
2、给镜像打标签
# docker tag imagesID 192.168.200.3/library/mariadb:1.0
[root@master opt]# docker tag 6e7398ba4904 192.168.200.3/library/mariadb:1.0
3、推送镜像
[root@master opt]# docker push 192.168.200.3/library/mariadb:1.0
The push refers to repository [192.168.200.3/library/mariadb]
fdb29cfdd699: Pushed
54214602004a: Pushed
a5f7767600df: Pushed
0fd18b3214aa: Pushed
4826cdadf1ef: Mounted from library/centos
1.0: digest: sha256:2407ee8da69ae933560bdb5dfb7329d1b1dea18eb4461f84a0b25ea40824fa85 size: 1362
2 K8s部署
[root@master opt]# ./k8s_master_install.sh
[root@master opt]# scp k8s_node_install.sh root@node:/root
[root@node ~]# ls
k8s_node_install.sh
[root@node ~]# ./k8s_node_install.sh
K8s运维
转载:https://blog.csdn.net/qq_45714272/article/details/110313164