通过 Openstack-helm 安装

概述

本文档说明使用 OpenStack-helm 安装 tacker 服务的步骤。OpenStack-helm 的目标是提供一组 Helm charts,以便在 Kubernetes 上简单、可靠和灵活地部署 OpenStack 和相关服务。

使用 openstack-helm 安装 Tacker 的先决条件

Tacker 安装的先决条件如下

  1. 在主目录中克隆 OpenStack-helm 和 openstack-helm-infra 代码。

    $ git clone https://opendev.org/openstack/openstack-helm.git
    $ git clone https://opendev.org/openstack/openstack-helm-infra.git
    $ cd openstack-helm
    
  2. 设置 Kubernetes。

    请参考 Kubernetes 安装的依赖项安装说明 [1]

  3. 创建名为 openstack 的命名空间,并为节点提供标签。

    $ kubectl create ns openstack
    $ kubectl label node <node-name> openstack-control-plane=enabled
    
  4. 设置 OpenStack。

    请参考 OpenStack 安装的以下依赖项安装说明

    • 部署 ingress controller [2]

    • 部署 OpenStack 后端 [3]

    • 部署 OpenStack [4]

    您可以在此处了解如何使用 openstack-helm 安装 OpenStack 及其依赖项。

注意

必须安装 Barbican。虽然在部署 OpenStack [4] 中没有记录,但您必须使用类似的过程安装 Barbican。执行以下脚本安装 Barbican。

$ cd ~/openstack-helm
$ ./tools/deployment/component/barbican/barbican.sh

安装 Tacker

  1. 使用 OpenStack-helm 安装 Tacker 将使用脚本 tacker.sh。

    使用脚本 tacker.sh 安装 tacker。

    $ cd ~/openstack-helm
    $ ./tools/deployment/component/tacker/tacker.sh
    
  2. 验证 tacker-conductor 和 tacker-server pod 是否正在运行,以及 helm release 的部署状态是否为已部署。

    $ kubectl get pods -A | grep tacker
    openstack          tacker-conductor-654fc7478-wt242                                1/1     Running     0             58m
    openstack          tacker-db-init-nxd7c                                            0/1     Completed   0             58m
    openstack          tacker-db-sync-kmf27                                            0/1     Completed   0             58m
    openstack          tacker-ks-endpoints-hbwnh                                       0/3     Completed   0             58m
    openstack          tacker-ks-service-7t8pm                                         0/1     Completed   0             58m
    openstack          tacker-ks-user-8blcj                                            0/1     Completed   0             58m
    openstack          tacker-rabbit-init-tlbj8                                        0/1     Completed   0             58m
    openstack          tacker-server-55fcdfdc5d-gj844                                  1/1     Running     0             58m
    
    $ helm ls -A | grep tacker
    tacker                  openstack       1               2024-01-05 13:02:43.337535539 +0000 UTC deployed        tacker-0.1.2            v1.0.0s
    
  3. 验证 Tacker api 是否正常工作。

    $ TACKER_SERVER_POD=tacker-server-55fcdfdc5d-gj844
    $ kubectl exec -n openstack -it $TACKER_SERVER_POD \
       -- curl -i -X POST -H "Content-Type: application/json" \
       -d '{"auth":{"identity":{"methods":["password"],"password":{"user":{"domain":{"name":"default"},"name":"admin","password":"password"}}},"scope":{"project":{"domain":{"name":"default"},"name":"admin"}}}}' \
       http://keystone-api.openstack.svc.cluster.local:5000/v3/auth/tokens
    Defaulted container "tacker-server" out of: tacker-server, init (init)
    HTTP/1.1 201 CREATED
    Date: Mon, 08 Jan 2024 11:22:50 GMT
    Server: Apache
    Content-Length: 7264
    X-Subject-Token: gAAAAABlm9sKwC-dJi_yWI8ea7HmEM-Xv3RisrODnAc6Qebqhg9OOuCPBcddk5P8qdSyIAJnMOZwVYgXyYPXLIwr7Zrn5eCCnYJ-YxnVS6nj_8DQLExTFfiFRrwz93LeULzLTKLmjWoo8QslBpk1cuz-uXf7rtny784duFjhUAOjoDYfv16aebI
    Vary: X-Auth-Token
    x-openstack-request-id: req-425da814-d3c7-4e7f-ad2f-ec19159fcbb0
    Content-Type: application/json
    
    $ TOKEN=gAAAAABlm9sKwC-dJi_yWI8ea7HmEM-Xv3RisrODnAc6Qebqhg9OOuCPBcddk5P8qdSyIAJnMOZwVYgXyYPXLIwr7Zrn5eCCnYJ-YxnVS6nj_8DQLExTFfiFRrwz93LeULzLTKLmjWoo8QslBpk1cuz-uXf7rtny784duFjhUAOjoDYfv16aebI
    

    向 Tacker API 端点发送 API 请求以检索 vnf 实例列表。

    $ kubectl get pods -A -o wide | grep tacker-server
    openstack          tacker-server-55fcdfdc5d-gj844                                  1/1     Running     0             15d    192.168.219.119   master   <none>           <none>
    
    $ curl -X GET http://192.168.219.119:9890/vnflcm/v2/vnf_instances -H "X-Auth-Token:$TOKEN" -H "Version: 2.0.0"
    []
    

参考