Ubuntu18.04でのTungstenFabricインストール
Ubuntu18.04 での Tungsten Fabric インストールを試してみている。
今回もAWS上のインスタンスを使用している。
AMIとしては、Ubuntu Server 18.04 LTS (HVM) (ami-07ad4b1c3af1ea214) を使用した。
環境としては、controller 1台 (t2.large, disk 30GB)、vRouter 1台 (t2.medium, disk 8GB) で、 kubernetes 環境を構築している。
まず、準備として、各ノードで 以下を実施している。
(all node) apt update
(controller node) apt install python-pip git
(controller node) pip install ansible==2.4.2.0
(vRouter node) apt install python
(controller node) ssh-keygen
(controller node) cd .ssh/
(controller node) cat id_rsa.pub >> authorized_keys
(vRouter node の .ssh/authorized_keys にも上記の公開鍵を登録)
(controller node) cd
(controller node) git clone -b R5.0 http://github.com/Juniper/contrail-ansible-deployer
(controller node) cd contrail-ansible-deployer
(controller node) vi config/instances.yaml
(以下を記述)
provider_config:
bms:
ssh_user: root
ssh_public_key: /root/.ssh/id_rsa.pub
ssh_private_key: /root/.ssh/id_rsa
domainsuffix: local
ntpserver: ntp.nict.jp
instances:
bms1:
provider: bms
roles:
config_database:
config:
control:
analytics:
analytics_database:
webui:
k8s_master:
kubemanager:
ip: 172.31.6.88 # controller node の ip
bms11:
provider: bms
roles:
vrouter:
k8s_node:
ip: 172.31.9.130 # vRouter node の ip
contrail_configuration:
CONTRAIL_VERSION: r5.0.1
KUBERNETES_CLUSTER_PROJECT: {}
JVM_EXTRA_OPTS: "-Xms128m -Xmx1g"
global_configuration:
CONTAINER_REGISTRY: tungstenfabricまた、vrouter.ko ビルド時のエラーを回避するため、vRouter node にて、以下を実施している。
(vRouter node) # vi /usr/src/linux-aws-headers-4.15.0-1021/include/linux/uuid.h
(以下の3行をコメントアウト)
// typedef struct {
// __u8 b[UUID_SIZE];
// } uuid_t;
(直後の行に、以下を追記)
typedef unsigned char uuid_t[16];
準備が終わったら、以下で実際のインストールを実施する。
ansible-playbook -i inventory/ playbooks/configure_instances.yml ansible-playbook -e orchestrator=kubernetes -i inventory/ playbooks/install_k8s.yml ansible-playbook -e orchestrator=kubernetes -i inventory/ playbooks/install_contrail.yml
※ インストール完了後、vhost0 が作成された後に、vRouter node で名前解決が出来なくなった場合、以下を実施する
(vRouter node) # vi /etc/systemd/resolved.conf (以下を追記) DNS=172.31.0.2 (vRouter node) # systemctl restart systemd-resolved.service
この後、以下の yaml ファイル ( https://github.com/tnaganawa/contrail-k8s-tutorial/tree/master/yml/1_initial ) で テスト用のコンテナを作成し、コンテナ間、およびGW IPへの疎通ができることを確認している。
root@ip-172-31-6-88:~/contrail-k8s-tutorial/yml/1_initial# kubectl get pod -o wide NAME READY STATUS RESTARTS AGE IP NODE cirros1 1/1 Running 0 38s 10.47.255.251 ip-172-31-9-130 cirros2 1/1 Running 0 16s 10.47.255.250 ip-172-31-9-130 root@ip-172-31-6-88:~/contrail-k8s-tutorial/yml/1_initial# kubectl exec -it cirros1 sh / # ping 10.47.255.250 PING 10.47.255.250 (10.47.255.250): 56 data bytes 64 bytes from 10.47.255.250: seq=0 ttl=63 time=1.482 ms 64 bytes from 10.47.255.250: seq=1 ttl=63 time=0.065 ms ^C --- 10.47.255.250 ping statistics --- 2 packets transmitted, 2 packets received, 0% packet loss round-trip min/avg/max = 0.065/0.773/1.482 ms / # ping 10.47.255.254 PING 10.47.255.254 (10.47.255.254): 56 data bytes 64 bytes from 10.47.255.254: seq=0 ttl=64 time=1.304 ms 64 bytes from 10.47.255.254: seq=1 ttl=64 time=0.128 ms ^C --- 10.47.255.254 ping statistics --- 2 packets transmitted, 2 packets received, 0% packet loss round-trip min/avg/max = 0.128/0.716/1.304 ms / #