1、在做题目之前的先决条件为在服务平台内已经添加了主机,并且仓库地址也已经正确设置,很关键的一点为,搭建仓库时,私有仓库的地址为浮动IP的地址,用内网的地址偶尔会报错,在上传镜像之前,需要去了解该服务需要的镜像,可以在yml的配置里面查看到,如下图所示。 2、在做题目之前,基础服务的镜像需要先上传,但是docker的命名规则为最后的 / 修改为 :,而连接符不需要改动,但是rancher_net_holder.tar和rancher-net_v0.11.3.tar服务本来的命名应该是有问题的,所以这个时候就需要参考yml去查看镜像的命令规则是怎么样的,这样才能正确的对镜像进行命名,不然四个基础服务都会报错,如果镜像命名有误的话。
3、有时候rancher-server搭建的平台,在设置完仓库地址后,发现仓库还是在docker.io里面找,无法选择到正确的仓库地址,但是docker info显示的仓库地址就是私有仓库,解决办法如下
(1)首先把仓库的服务KILL掉,假设我们设置的私有仓库的ID为a0c0c8dd11bb,这时先stop再rm,最后再使用docker ps -a查看容器是否被删除。(rm删除进程 rmi删除镜像)
#docker stop a0c0c8dd11bb #docker rm -f a0c0c8dd11bb #docker ps -a
(2)重新tag命名上传的docker.io镜像,修改为自己私有仓库的地址为前缀。
#docker tag c9bd19d022f6 10.0.3.137:5000/registry:latest
(3)修改完镜像的名称后,删除原本的镜像,由于两个镜像的ID是一样的,所以可以使用下面的方法进行删除
[root@registry ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE 10.0.0.102:5000/rancher/agent v1.2.5 ef5fea38dbe6 3 years ago 237.1 MB 192.168.200.102:5000/rancher/agent v1.2.5 ef5fea38dbe6 3 years ago 237.1 MB
现在有两个命名为一样的镜像,tag也是一样的,使用rmi -f 删除10.0.0.102开头的镜像
[root@registry ~]# docker rmi -f 10.0.0.102:5000/rancher/agent:v1.2.5 Untagged: 10.0.0.102:5000/rancher/agent:v1.2.5
这样就已经把镜像删除了,docker.io镜像的删除方法也是相同
(4)删除完镜像后,再重新启动仓库服务,并查看进程的启动状态是否为up,最后重启docker服务。
[root@registry ~]# docker run -d -p 5000:5000 --restart=always --name 192.168.200.102/registry:latest [root@registry ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 86c93b98ac61 192.168.200.102:5000/registry:latest “/entrypoint.sh /etc/” 12 minutes ago Up 12 minutes 0.0.0.0:5000->5000/tcp registry [root@registry ~]# systemctl daemon-reload [root@registry ~]# systemctl restart docker
最后再进去页面查看是否正确获取到了仓库的地址
4、有时候需要整合控制节点和计算节点的资源,所以在创建云主机的时候nova-scheduler会进行调度,一般情况就是第一台在控制节点安装,第二台在计算节点安装,第三台继续在控制节点安装,以此类推,但是在控制节点因为有其他的服务还有数据库等资源,所以在控制节点创建的云主机会特别的卡顿,解决方法是停止控制节点的nova-compute服务或者在云主机创建的过程中,指定云主机安装的位置,操作如下。
(1)这是第一种方法,关闭nova-compute服务
[root@controller ~]# systemctl stop openstack-nova-compute [root@controller ~]# systemctl disable openstack-nova-compute [root@controller ~]# nova service-list ±—±-----------------±-----------±---------±--------±------±---------------------------±----------------+ | Id | Binary | Host | Zone | Status | State | Updated_at | Disabled Reason | ±—±-----------------±-----------±---------±--------±------±---------------------------±----------------+ | 1 | nova-conductor | controller | internal | enabled | up | 2020-10-04T08:15:03.000000 | - | | 5 | nova-scheduler | controller | internal | enabled | up | 2020-10-04T08:15:08.000000 | - | | 6 | nova-consoleauth | controller | internal | enabled | up | 2020-10-04T08:15:08.000000 | - | | 10 | nova-compute | compute | nova | enabled | up | 2020-10-04T08:15:03.000000 | - | | 11 | nova-compute | controller | nova | enabled | down | 2020-10-04T08:09:46.000000 | - | ±—±-----------------±-----------±---------±--------±------±---------------------------±----------------+
虽然控制节点的nova-compute服务的状态还是enabled, 但是服务已经关闭了,并且在云平台创建云主机的时候,只会在计算节点上创建,不会跑到控制节点创建了,需要注意的是,不能只stop服务,一定要disable,否则创建云主机的时候,会一直进行调度,创建失败。
(2)第二种方法为直接使用命令创建云主机,用命令指定云主机创建的位置 参考原文链接:https://blog.csdn.net/hutiewei2008/article/details/86573504?utm_medium=distribute.pc_relevant.none-task-blog-searchFromBaidu-9.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-searchFromBaidu-9.channel_param 官方原文:https://docs.openstack.org/nova/rocky/admin/availability-zones.html
查看有效区域的列表 [root@controller ~]# openstack availability zone list ±----------±------------+ | Zone Name | Zone Status | ±----------±------------+ | internal | available | | nova | available | | nova | available | | nova | available | ±----------±------------+
查看有效的计算主机列表 [root@controller ~]# openstack host list ±-----------±------------±---------+ | Host Name | Service | Zone | ±-----------±------------±---------+ | controller | conductor | internal | | controller | scheduler | internal | | controller | consoleauth | internal | | compute | compute | nova | | controller | compute | nova | ±-----------±------------±---------+
查看有效计算节点的列表 [root@controller ~]# openstack hypervisor list ±—±--------------------+ | ID | Hypervisor Hostname | ±—±--------------------+ | 1 | compute | | 2 | controller | ±—±--------------------+
这三个步骤是指定云主机创建位置的关键步骤,下面的三个步骤为查看创建云主机时的其他参数
查看有效的网络列表 [root@controller ~]# openstack network list ±-------------------------------------±---------±-------------------------------------+ | ID | Name | Subnets | ±-------------------------------------±---------±-------------------------------------+ | 9bcfee0c-80c1-48f0-a415-6ee4436c76b5 | ext-net | 6b252d42-bac9-4c18-bb6b-2016631d596c | | 7b7bb5e5-a77f-4e6a-8786-95bf7b2f46da | int-net1 | 006f273e-1c54-4e86-8adb-0c290993bf5a | | 04c3640e-3a1e-4fd9-86b2-de413490ec71 | int-net2 | 20bcfa92-1064-4c6b-9d18-c0d5713d265d | ±-------------------------------------±---------±-------------------------------------+
查看有效的镜像列表 [root@controller ~]# openstack image list ±-------------------------------------±-----------±-------+ | ID | Name | Status | ±-------------------------------------±-----------±-------+ | 0f1f347a-8172-4318-956b-551839b188d9 | CentOS_6.5 | active | | d3b4dc07-7e7e-4a32-8cb7-9bbc6de43632 | CentOS_7.2 | active | ±-------------------------------------±-----------±-------+
查看有效的flavor列表 [root@controller ~]# openstack flavor list ±-------------------------------------±----------±------±-----±----------±------±----------+ | ID | Name | RAM | Disk | Ephemeral | VCPUs | Is Public | ±-------------------------------------±----------±------±-----±----------±------±----------+ | 1 | m1.tiny | 512 | 1 | 0 | 1 | True | | 143ac50d-ac38-462e-ac3f-9799b7dfca4e | 1 | 4096 | 60 | 0 | 2 | True | | 2 | m1.small | 2048 | 20 | 0 | 1 | True | | 3 | m1.medium | 4096 | 40 | 0 | 2 | True | | 4 | m1.large | 8192 | 80 | 0 | 4 | True | | 5 | m1.xlarge | 16384 | 160 | 0 | 8 | True | ±-------------------------------------±----------±------±-----±----------±------±----------+
随后开始创建云主机(查看实例的命令为openstack server list)
[root@controller ~]# openstack server create --flavor 3 --image d3b4dc07-7e7e-4a32-8cb7-9bbc6de43632 --nic net-id=7b7bb5e5-a77f-4e6a-8786-95bf7b2f46da --availability-zone nova:compute:compute test ±-------------------------------------±--------------------------------------------------+ | Field | Value | ±-------------------------------------±--------------------------------------------------+ | OS-DCF:diskConfig | MANUAL | | OS-EXT-AZ:availability_zone | nova | | OS-EXT-SRV-ATTR:host | None | | OS-EXT-SRV-ATTR:hypervisor_hostname | None | | OS-EXT-SRV-ATTR:instance_name | instance-00000018 | | OS-EXT-STS:power_state | 0 | | OS-EXT-STS:task_state | scheduling | | OS-EXT-STS:vm_state | building | | OS-SRV-USG:launched_at | None | | OS-SRV-USG:terminated_at | None | | accessIPv4 | | | accessIPv6 | | | addresses | | | adminPass | NiGeN2DpT6aw | | config_drive | | | created | 2020-10-04T08:39:08Z | | flavor | m1.medium (3) | | hostId | | | id | a210884f-498f-4770-9b8a-c356bf332b77 | | image | CentOS_7.2 (d3b4dc07-7e7e-4a32-8cb7-9bbc6de43632) | | key_name | None | | name | test | | os-extended-volumes:volumes_attached | [] | | progress | 0 | | project_id | 423aafe5e2674ef9a21526d0037b9081 | | properties | | | security_groups | [{u’name’: u’default’}] | | status | BUILD | | updated | 2020-10-04T08:39:09Z | | user_id | 406607a2d39a41a48ddc6db6073d7cd8 | ±-------------------------------------±--------------------------------------------------+
建议在创建填写的名称都为ID号,不然容易报错。 –flavor 实例类型
–image 镜像
–nic 网络 net-id网络id
–availability-zone nova:compute:compute 第一个nova为查询的有效区域,第一个compute为查询出来的可用的计算主机,第二个compute为查询出来的可用的计算节点
这样就可以指定创建云主机的位置了。
5、在创建Linux的时候,默认只会分配50G给到ROOT目录,其余的空间都会分配到HOME目录下,这个时候需要对ROOT目录进行扩容,解决方法如下。
首先查看root目录和home目录的大小 [root@controller ~]# df -Th Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/centos-root xfs 50G 22G 29G 43% / devtmpfs devtmpfs 16G 0 16G 0% /dev tmpfs tmpfs 16G 0 16G 0% /dev/shm tmpfs tmpfs 16G 8.6M 16G 1% /run tmpfs tmpfs 16G 0 16G 0% /sys/fs/cgroup /dev/mapper/centos-home xfs 434G 33M 434G 1% /home /dev/sda1 xfs 497M 125M 373M 25% /boot tmpfs tmpfs 3.2G 0 3.2G 0% /run/user/0
注释/etc/fstab目录下的挂载条目 [root@controller ~]# cat /etc/fstab
#/etc/fstab #Created by anaconda on Wed Sep 23 14:45:23 2020
#Accessible filesystems, by reference, are maintained under ‘/dev/disk’ #See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
/dev/mapper/centos-root / xfs defaults 0 0 UUID=3c70d9ca-1554-4d54-bed5-d17216ed45b8 /boot xfs defaults 0 0 #/dev/mapper/centos-home /home xfs defaults 0 0 /dev/mapper/centos-swap swap
卸载home目录 [root@controller ~]# umount /home/
移除home目录的逻辑卷 [root@controller ~]# lvremove /dev/centos/home Do you really want to remove active logical volume home? [y/n]: y Logical volume “home” successfully removed
为root目录扩容 [root@controller ~]# lvextend -L +400G /dev/centos/root Size of logical volume centos/root changed from 50.00 GiB (12800 extents) to 450.00 GiB (115200 extents). Logical volume root successfully resized.
格式化扩容后的root目录 [root@controller ~]# xfs_growfs /dev/mapper/centos-root meta-data=/dev/mapper/centos-root isize=256 agcount=4, agsize=3276800 blks = sectsz=512 attr=2, projid32bit=1 = crc=0 finobt=0 data = bsize=4096 blocks=13107200, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=0 log =internal bsize=4096 blocks=6400, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 data blocks changed from 13107200 to 117964800
再次查看root目录的大小,扩容成功 [root@controller ~]# df -Th Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/centos-root xfs 450G 22G 429G 5% / devtmpfs devtmpfs 16G 0 16G 0% /dev tmpfs tmpfs 16G 0 16G 0% /dev/shm tmpfs tmpfs 16G 8.6M 16G 1% /run tmpfs tmpfs 16G 0 16G 0% /sys/fs/cgroup /dev/sda1 xfs 497M 125M 373M 25% /boot tmpfs tmpfs 3.2G 0 3.2G 0% /run/user/0
docker删除所有容器
docker stop $(docker ps -a) docker rm $(docker ps -a)