Kolla-Ansible 本地仓库部署

部署本地仓库 Docker Registry

kolla-ansible -i all-in-one bootstrap-servers 会改变 docker 的网络配置,需要删除桥接配置,即启用桥接,否则构建镜像的过程中无法下载依赖库。

另外,还可以添加国内的镜像源,最终 /etc/docker/daemon.json 配置文件的内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
{
    "registry-mirrors": [
        "http://hub-mirror.c.163.com"
    ],
    "insecure-registries": [
        "10.112.247.246:4000"
    ],
    "iptables": false,
    "log-opts": {
        "max-file": "5",
        "max-size": "50m"
    }
}

修改配置文件后需要重启 docker 服务。

1
2
3
4
5
6
7
8
9
10
# docker 网络配置
sudo vim /etc/docker/daemon.json
# 删除 bridge: "none"

# 重启 docker 服务
sudo service docker restart

# 将当前用户加入 docker 用户组
sudo usermod -aG docker $USER
newgrp docker

运行本地镜像仓库,由于 Keystone 使用了 5000 端口,因此这里指定映射到 4000 端口。

1
2
3
4
5
6
7
# 本地镜像仓库
docker run -d \
 --name registry \
 --restart=always \
 -p 4000:5000 \
 -v registry:/var/lib/registry \
 registry:2

使用本地仓库

使用 tox 创建配置文件

1
2
3
4
5
6
7
8
9
# 安装 tox
pip install tox

# 生成配置文件
cd kolla
tox -e genconfig

# 拷贝配置文件
sudo cp etc/kolla/kolla-build.conf /etc/kolla/

下载 Keystone 源码,指定 Victoria 版本

1
2
3
# 下载源码
cd
git clone https://github.com/openstack/keystone.git --branch stable/victoria --single-branch

修改配置文件,假设本机 ip 为 10.1.0.240,openstack_release 有要求(随便填会出错)

  • 默认构建的镜像被打上了 12.1.0 的标签,这里的 openstack_release 需要指定 registry 中存在的标签

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 配置源码路径
sudo vim /etc/kolla/kolla-build.conf
#[DEFAULT]
#base = ubuntu
#network_mode = host
#push = true
#registry = 10.1.0.240:4000
#[keystone-base]
#type = local
#location = /home/jck/keystone

# 使用本地仓库
sudo vim /etc/kolla/globals.yml
#docker_registry: 10.1.0.240:4000
#openstack_release: "12.1.0"

构建镜像,使用 &> 将输出重定向到文件中

1
2
3
4
5
6
7
8
# 源码构建 Keystone 镜像
kolla-build -t source --config-file /etc/kolla/kolla-build.conf keystone &> keystone-build.txt

# 列出镜像
docker images

# 查看本地仓库
curl -X GET 10.1.0.240:4000/v2/_catalog

构建完毕后,使用新镜像更新当前环境

1
kolla-ansible upgrade

其他

kolla-ansible 相关操作

1
2
3
4
5
6
7
8
9
10
11
# 删除容器
kolla-ansible/tools/cleanup-containers

# 删除所有镜像
kolla-ansible/tools/cleanup-images --all

# 拉取镜像
kolla-ansible pull

# 更新环境
kolla-ansible upgrade

相关文件

1
2
3
4
5
6
7
8
9
10
# dockerfile 相关
~/kolla/docker  # jinjia2 模板文件
/etc/kolla      # 镜像配置文件

# 配置文件
/etc/kolla/kolla-build.conf
/etc/kolla/globals.yml

# 日志文件
/var/log/kolla/ # 链接 /var/lib/docker/volumes/kolla_logs/_data/

清除容器重新部署,通常不用 ./kolla-ansibletools/cleanup-host

1
2
3
4
./kolla-ansible/tools/cleanup-containers
kolla-ansible -i ./all-in-one prechecks
kolla-ansible -i ./all-in-one deploy
kolla-ansible post-deploy

问题与解决

nova-compute 注册失败

查看日志信息说是连接不上 libvirt

配置并重启 libvirt

1
2
3
4
5
6
7
8
9
10
sudo vim /etc/libvirt/libvirtd.conf
#listen_tls = 0
#listen_tcp = 1
#auth_tcp = "none"
#tcp_port = "16509"

systemctl restart libvirtd
#sudo chmod -R 777 /var/run/libvirt

ps aux | grep libvirtd

重新部署

1
2
3
4
5
6
7
8
# 删除容器
kolla-ansible/tools/cleanup-containers

# 部署
kolla-ansible -i ./all-in-one deploy

# 重新生成认证文件
kolla-ansible post-deploy

不安装和配置 libvirt,且 /etc/kolla/globals.yml 也不配置 nova_compute_virt_type 也能正常执行。

安装完毕后注释该配置,重新 upgrade 正常,不注释貌似也行(玄学)。

官方指出,由于技术原因,配置 qemu 后使用 kolla-ansible upgrade 可能出错。

数据库迁移出错

尝试多次无果,回退快照后执行 kolla-ansible upgrade 没有遇到该问题,清除后重新部署应该也可以。

1
ERROR keystone migrate.exceptions.InvalidRepositoryError: /var/lib/kolla/venv/lib/python3.8/site-packages/keystone/common/sql/migrate_repo

请求超时

再次执行 kolla-ansible upgrade 没有再遇到该问题。实验过程中发现时不时就会请求超时,通常就重复执行指令,再不行就清除后重新部署。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇