Tungsten Fabricナレッジベース丨構築、インストール、およびパブリッククラウドの展開

著者:長縄達也翻訳者:TF中国人コミュニティ

タングステンファブリックの作り方

ここにあるリポジトリファイルのほとんどのドキュメントは有効です。
https://github.com/Juniper/contrail-dev-env--

yum -y install docker git
git clone https://github.com/Juniper/contrail-dev-env
cd contrail-dev-env
. /startup.sh
docker exec -it contrail-developer-sandbox bash

cd /root/contrail-dev-env
yum -y remove python-devel ##依存関係の問題を解決する必要がある
make sync
make fetch_packages
make setup
make dep

すべてのモジュールをビルドするには、このコマンドを使用できます(コンピューターのパフォーマンスにもよりますが、1〜2時間かかります)。

make rpm
make containers

より具体的なモジュールを作成するには、これらのコマンドを使用することもできます。注意すべき点の1つは、rpm-contrail自体が大きなデータパケットであり、それ以上に分割できないことです(コントローラー、vrouterなどが含まれます)。

make list
make rpm-contrail

make list-containers
make container-general-base
make container-base
make container-kubernetes_kube-manager

- those make targets are included fromthis file:/root/contrail/tools/packages/Makefile
 https://github.com/Juniper/contrail-packages/blob/master/Makefile

このコマンドは、vrouter.koのみをビルドする場合に役立ちます。

build:
cd /root/contrail
scons --opt=production --kernel-dir=/lib/modules/3.10.0-1062.el7.x86_64/build build-kmodule

clean:
cd /root/contrail/vrouter
make KERNELDIR=/lib/modules/3.10.0-1062.el7.x86_64/build clean

注:他のディストリビューションのkernel-develパッケージ(centos8とamazonlinux 2のパッケージを試しました)がインストールされている場合は、kernel-dirとして指定することもできます。
たとえば、このコマンドは、centos8.2のvrouter.koを作成します。

# rpm -ivh --nodeps kernel-devel-4.18.0-147.8.1.el8_1.x86_64.rpm
# scons --opt=production --kernel-dir=/usr/src/kernels/4.18.0-147.8.1.el8_1.x86_64/ build-kmodule

チャームインストール

TungstenFabricはjujuチャームを介してインストールすることもできます。

# apt update
# snap install --classic juju
# juju add-cloud

Select cloud type: manual
Enter a name for your manual cloud: manual-cloud-1
Enter the controller's hostname or IP address: (juju node's ip)

# ssh-keygen
# cd .ssh
# cat id_rsa.pub >> authorized_keys
# cd
# ssh-copy-id(other nodes' ip)

# juju bootstrap manual-cloud-1

# git clone https://github.com/Juniper/contrail-charms -b R5

# juju add-machine ssh:root@(openstack-controller ip)
# juju add-machine ssh:root@(openstack-compute ip)
# juju add-machine ssh:root@(TungstenFabric-controller ip)

# vi set-juju.sh
juju deploy ntp
juju deploy rabbitmq-server --to lxd:0
juju deploy percona-cluster mysql --config root-password=contrail123 --config max-connections=1500--to lxd:0
juju deploy openstack-dashboard --to lxd:0
juju deploy nova-cloud-controller --config console-access-protocol=novnc --config network-manager=Neutron --to lxd:0
juju deploy neutron-api --config manage-neutron-plugin-legacy-mode=false--config neutron-security-groups=true--to lxd:0
juju deploy glance --to lxd:0
juju deploy keystone --config admin-password=contrail123 --config admin-role=admin --to lxd:0

juju deploy nova-compute --config ./nova-compute-config.yaml --to 1

CHARMS_DIRECTORY=/root
juju deploy $CHARMS_DIRECTORY/contrail-charms/contrail-keystone-auth --to 2
juju deploy $CHARMS_DIRECTORY/contrail-charms/contrail-controller --config auth-mode=rbac --config cassandra-minimum-diskgb=4--config cassandra-jvm-extra-opts="-Xms1g -Xmx2g"--to 2
juju deploy $CHARMS_DIRECTORY/contrail-charms/contrail-analyticsdb --config cassandra-minimum-diskgb=4--config cassandra-jvm-extra-opts="-Xms1g -Xmx2g"--to 2
juju deploy $CHARMS_DIRECTORY/contrail-charms/contrail-analytics --to 2
juju deploy $CHARMS_DIRECTORY/contrail-charms/contrail-openstack
juju deploy $CHARMS_DIRECTORY/contrail-charms/contrail-agent

juju expose openstack-dashboard
juju expose nova-cloud-controller
juju expose neutron-api
juju expose glance
juju expose keystone

juju expose contrail-controller
juju expose contrail-analytics

juju add-relation keystone:shared-db mysql:shared-db
juju add-relation glance:shared-db mysql:shared-db
juju add-relation keystone:identity-service glance:identity-service
juju add-relation nova-cloud-controller:image-service glance:image-service
juju add-relation nova-cloud-controller:identity-service keystone:identity-service
juju add-relation nova-cloud-controller:cloud-compute nova-compute:cloud-compute
juju add-relation nova-compute:image-service glance:image-service
juju add-relation nova-compute:amqp rabbitmq-server:amqp
juju add-relation nova-cloud-controller:shared-db mysql:shared-db
juju add-relation nova-cloud-controller:amqp rabbitmq-server:amqp
juju add-relation openstack-dashboard:identity-service keystone

juju add-relation neutron-api:shared-db mysql:shared-db
juju add-relation neutron-api:neutron-api nova-cloud-controller:neutron-api
juju add-relation neutron-api:identity-service keystone:identity-service
juju add-relation neutron-api:amqp rabbitmq-server:amqp

juju add-relation contrail-controller ntp
juju add-relation nova-compute:juju-info ntp:juju-info

juju add-relation contrail-controller contrail-keystone-auth
juju add-relation contrail-keystone-auth keystone
juju add-relation contrail-controller contrail-analytics
juju add-relation contrail-controller contrail-analyticsdb
juju add-relation contrail-analytics contrail-analyticsdb

juju add-relation contrail-openstack neutron-api
juju add-relation contrail-openstack nova-compute
juju add-relation contrail-openstack contrail-controller

juju add-relation contrail-agent:juju-info nova-compute:juju-info
juju add-relation contrail-agent contrail-controller

# vi nova-compute-config.yaml 
nova-compute:
 virt-type: qemu 
 enable-resize: True
 enable-live-migration: True
 migration-auth-type: ssh

# bash set-juju.sh(to check status, it takes 20 minutes for every application to be active)
# juju status
# tail -f /var/log/juju/*log | grep -v -w DEBUG

正常に実行するために、注意すべき2つのポイントがあります。

  1. jujuは内部でLXDと独自のサブネットを使用するため、少なくともTungsten Fabricノードにはこのサブネットへの静的ルートが必要です(AWS経由の場合は、VPCルーティングテーブルを使用でき、送信元/宛先チェックを無効にする必要があります)
  2. LXDはデフォルトでdockerの実行を許可しないため、lxcconfigを介して許可するように設定する必要があります。
juju ssh 0
 sudo su -
 lxc list
 lxc config set juju-cb8047-0-lxd-4 security.nesting true
 lxc config show juju-cb8047-0-lxd-4
 lxc restart juju-cb8047-0-lxd-4

パブリッククラウドへのTungstenファブリックの展開

**ゲートウェイレスとsnat **
パブリッククラウドにインストールする場合、MPLS over IPまたはVXLANをサポートする利用可能なハードウェアがないため、vRouterにはアンダーレイIPからのフローティングIPが必要です。

とはいえ、Tungsten Fabricはゲートウェイレス機能をサポートしているため、この仮想ネットワークからフローティングIPにサービスを提供することはそれほど難しくありません(別のIPをENIに接続し、それをフローティングIPのソースにする方法です。 vRouter上のサービスへの外部アクセス)

注:kubernetesを使用する場合、私は個人的にサービスネットワークをゲートウェイレスに設定することを好みます(この設定は外部IPを使用しません)。ベアメタルインスタンスを備えたハイパーバイザーを使用する場合は、ゲートウェイレスサブネットを備えたフローティングIPが推奨されます。

vRouterから外部ネットワークまで、分散SNAT機能で問題を解決できます。

**AZ高可用性WIP **
さらに、vRouterで2つの別々の[Load Balancing](https://cloud.tencent.com/product/clb?from=10680)デバイスを定義して同じアプリケーションにアクセスできるため、2つの異なるアベイラビリティーゾーンからアクセスできるため、より高いアベイラビリティが保証されます。

この設定を行うには、いくつかの設定が必要です。

  1. vRouterには、サブネット範囲がVPCサブネットに含まれていないゲートウェイレスサブネットがあります。
  2. ゲートウェイレスサブネットをvRouterノードの1つに転送する、ルーティングテーブルでインスタンスルートを構成します。
  3. ELBはゲートウェイレスIPのIPアドレスとして設定されます。 (IPを指定する場合は、「サブネット」に「その他のIPアドレス」を設定する必要があります)
  4. この場合、セキュリティグループはELBのアドレスを自動的に許可しないため、VPCのCIDRがELBヘルスチェックを実行して正しく機能するように手動で許可する必要があります。

vRouterのゲートウェイレス機能の制限の1つは、宛先vRouterとパケットを最初に受信したvRouterが同じL2サブネットに配置されている場合にのみ、パケットを他のvRouterに転送できることです。

AWSサブネットに同じサブネットを含めることはできないため、このセットアップAZを高可用性にするには、同じアプリケーションに対して2つのロードバランサーを構成する必要があります。各AZには2つの異なるゲートウェイレスサブネットがあります。

ELBはデータパケットを2つのvRouterロードバランサーに転送できるため、ELBを使用してAZの高可用性を実現できます。

EKS統合

vRouter CNI AWS EKSは、もう1つの可能な統合ソリューションです。

( laptop)
# kubectl delete ds -n kube-system aws-node(EKS worker node)
# mv -i /etc/cni/net.d/10-aws.conflist /tmp/

次に、以下のURLと同じ手順を使用して、vRouterCNIをインストールできます。

CNI MTU設定

vRouterがパブリッククラウドインスタンスにインストールされている場合、いくつかのMTUの問題が発生する可能性があることに注意してください。
物理インターフェイスのMTUを変更すると、ほとんどの問題を解決できますが、コンテナからのデータパケットが断片化されている場合は、CNIのMTU設定を変更する必要がある場合があります。

vi /etc/cni/net.d/10-contrail.conf
{" cniVersion":"0.3.1","contrail":{"meta-plugin":"$KUBERNETES_CNI_META_PLUGIN","vrouter-ip":"127.0.0.1","vrouter-port": $VROUTER_PORT,"config-dir":"/var/lib/contrail/ports/vm","poll-timeout":5,"poll-retries":15,+"mtu":1300,"log-file":"$LOG_DIR/cni/opencontrail.log","log-level":"4"},"name":"contrail-k8s-cni","type":"contrail-k8s-cni"}

https://github.com/Juniper/contrail-controller/blob/master/src/container/cni/contrail/cni.go#L33


元のリンク:
https://github.com/tnaganawa/tungstenfabric-docs/blob/master/TungstenFabricKnowledgeBase.md

前の選択

[ Tungsten Fabricナレッジベース丨vRouter内部操作の調査](https://tungstenfabric.org.cn/topic/104/tungsten-fabric%E7%9F%A5%E8%AF%86%E5%BA%93%E4%B8 %A8vrouter%E5%86%85%E9%83%A8%E8%BF%90%E8%A1%8C%E6%8E%A2%E7%A7%98)[タングステンファブリックナレッジベース丨内部コンポーネントの詳細](https://mp.weixin.qq.com/s?__biz=MzI3ODczMjY5MA==&mid=2247486044&idx=1&sn=8b2e4a590034c6d852a89fcbd5d14565&chksm=eb53c0a1dc2449b736b70ebade80f629475cdf8071c5b2411ab7aabcbee15fa1399c9f8eeae1&token=1540863968&lang=zh_CN#rd)

TungstenFabric入門コレクションシリーズの記事-
1.[ 最初の起動および操作ガイド](https://tungstenfabric.org.cn/topic/54/tungsten-fabric%E5%85%A5%E9%97%A8%E5%AE%9D%E5%85%B8%E4 %B8%A8%E9%A6%96%E6%AC%A1%E5%90%AF%E5%8A%A8%E5%92%8C%E8%BF%90%E8%A1%8C%E6%8C %87%E5%8D%97)
2.[ TFコンポーネントの7つの「武器」](https://tungstenfabric.org.cn/topic/56/tungsten-fabric%E5%85%A5%E9%97%A8%E5%AE%9D%E5%85% B8%E4%B8%A8tf%E7%BB%84%E4%BB%B6%E7%9A%84%E4%B8%83%E7%A7%8D-%E6%AD%A6%E5%99%A8 )
3.[ オーケストレーターの統合](https://tungstenfabric.org.cn/topic/60/tungsten-fabric%E5%85%A5%E9%97%A8%E5%AE%9D%E5%85%B8%E4%B8 %A8%E7%BC%96%E6%8E%92%E5%99%A8%E9%9B%86%E6%88%90)
4.[ インストールに関するもの(オン)](https://tungstenfabric.org.cn/topic/63/tungsten-fabric%E5%85%A5%E9%97%A8%E5%AE%9D%E5%85% B8%E4%B8%A8%E5%85%B3%E4%BA%8E%E5%AE%89%E8%A3%85%E7%9A%84%E9%82%A3%E4%BA%9B% E4%BA%8B-%E4%B8%8A)
5.[ インストールに関するもの(下記)](https://tungstenfabric.org.cn/topic/65/tungsten-fabric%E5%85%A5%E9%97%A8%E5%AE%9D%E5%85% B8%E4%B8%A8%E5%85%B3%E4%BA%8E%E5%AE%89%E8%A3%85%E7%9A%84%E9%82%A3%E4%BA%9B% E4%BA%8B-%E4%B8%8B)
6.[ 主流の監視システムツールの統合](https://tungstenfabric.org.cn/topic/69/tungsten-fabric%E5%85%A5%E9%97%A8%E5%AE%9D%E5%85%B8% E4%B8%A8%E4%B8%BB%E6%B5%81%E7%9B%91%E6%8E%A7%E7%B3%BB%E7%BB%9F%E5%B7%A5%E5% 85%B7%E7%9A%84%E9%9B%86%E6%88%90)
7.[ 翌日の作業を開始します](https://tungstenfabric.org.cn/topic/71/tungsten-fabric%E5%85%A5%E9%97%A8%E5%AE%9D%E5%85%B8% E4%B8%A8%E5%BC%80%E5%A7%8B%E7%AC%AC%E4%BA%8C%E5%A4%A9%E7%9A%84%E5%B7%A5%E4% BD%9C)
8.[8 一般的な障害とトラブルシューティングのヒント](https://tungstenfabric.org.cn/topic/111/%E9%93%BE%E6%8E%A5%E5%9C%B0%E5%9D%80)
9.[ クラスターの更新について)(https://mp.weixin.qq.com/s?__biz=MzI3ODczMjY5MA==&mid=2247484945&idx=1&sn=590839212fb13b77c193f7491bc472b2&chksm=eb53ccecdc2445fa7cfbf77c1430373zhf1445380c6
10.[ L3VPNとEVPNの統合について話す](https://tungstenfabric.org.cn/topic/77/tungsten-fabric%E5%85%A5%E9%97%A8%E5%AE%9D%E5%85%B8% E4%B8%A8%E8%AF%B4%E8%AF%B4l3vpn%E5%8F%8Aevpn%E9%9B%86%E6%88%90)
11.[ サービスチェーン、BGPaaSなどについて](https://tungstenfabric.org.cn/topic/80/tungsten-fabric%E5%85%A5%E9%97%A8%E5%AE%9D%E5%85%B8 %E4%B8%A8%E5%85%B3%E4%BA%8E%E6%9C%8D%E5%8A%A1%E9%93%BE-bgpaas%E5%8F%8A%E5%85%B6 %E5%AE%83)
12.[ マルチクラスターおよびマルチデータセンターについて](https://tungstenfabric.org.cn/topic/81/tungsten-fabric%E5%85%A5%E9%97%A8%E5%AE%9D%E5%85%B8 %E4%B8%A8%E5%85%B3%E4%BA%8E%E5%A4%9A%E9%9B%86%E7%BE%A4%E5%92%8C%E5%A4%9A%E6 %95%B0%E6%8D%AE%E4%B8%AD%E5%BF%83)
13.[ マルチオーケストレーターの使用法と構成](https://mp.weixin.qq.com/s?__biz=MzI3ODczMjY5MA==&mid=2247485215&idx=1&sn=32aa9d3ce1e8c3400934f1a9fb6788fc&chksm=eb53cde2dc2444f411b2de46

Recommended Posts

Tungsten Fabricナレッジベース丨構築、インストール、およびパブリッククラウドの展開
Tungsten Fabricナレッジベース丨OpenStack、K8s、CentOSインストールの問題に関する補足
CentOs7のインストールと展開Zabbix3.4オリジナル
2-Kubernetesエントリーマニュアルのインストールと展開
CentOS7でのErlang20.2のインストールと展開
JumpServer Bastion Host--CentOS 8のインストールと展開(4)
ubuntuDockerのインストールとRancherの展開
Ubuntuのインストールと展開Redash操作ノート(2020.08)
CentOS6 / 7でのMySQL8.0のインストール、展開、および構成
Centos7のインストールとgitlabサーバーの展開
Ubuntu環境でのNginxのインストールと展開
CentOSでのZabbixのインストールと展開およびローカリゼーション
CentOS7でのJenkinsのインストールと展開のチュートリアル
Centos7のインストールとAirflowの展開の詳細
CentOSでのMySQL8.0のインストールと展開、非常に詳細!
CentOS8でのMySQL8.0のインストール、展開、および構成のチュートリアル