新機能および変更された機能に関する情報

次の表は、この最新リリースまでの主な変更点の概要を示したものです。ただし、今リリースまでの変更点や新機能の一部は表に記載されていません。

Cisco APIC のリリース バージョン

特長

説明

リリース 6.1(2)

Cisco ACI でのオープンソース Cloud Foundry のサポート

このリリースでは、Cisco ACI ファブリックに Cloud Foundry を展開できなくなりました。

リリース 3.1(2)

Cisco ACI でのオープンソース Cloud Foundry のサポート

このリリースでは、Cisco ACI ファブリックに Cloud Foundry を展開できます。

Cisco ACI と Cloud Foundry の統合

Cloud Foundry は、Linux コンテナを使用してアプリケーションを展開および管理する Platform as a Service(PAAS)です。VMware vSphere や Amazon Web Services(AWS)などのさまざまなインフラストラクチャ システムのオーバーレイとして機能し、これらのシステムで使用される基盤となるネットワークで動作します。

Cisco APIC リリース 3.1(2) 以降、Cloud Foundry は Cisco Application Centric Infrastructure(ACI)と統合されています。これにより、お客様は Cloud Foundry コンテナですべての Cisco ACI セキュリティおよびポリシー機能を使用できます。

Cisco APIC リリース 3.1(2) では、Cisco ACI の統合は、Cisco ACI が VMware vSphere のネットワーク ファブリックを提供する VMware vSphere に展開された Cloud Foundry に適用されます。

このドキュメントは、Cisco ACI と統合されたオープンソースの Cloud Foundry を展開するためのガイドであり、Cloud Foundry に対する Cisco ACI 固有の拡張機能の使用について説明します。

準備

Cloud Foundry の互換性

Cloud Foundry は、次のソフトウェアと互換性があります。

  • Cisco APIC リリース 3.1(2)

  • Ubuntu Trusty 上の Cloud Foundry cf-deployment 1.29.0

  • Cisco ACI アドオン 0.2.0


(注)  


このドキュメントには、分離セグメントの展開は含まれていません。

Cloud Foundry ACI 統合の準備

Cloud Foundry を Cisco ACI と統合する前に、次のタスクを完了する必要があります。

始める前に

次のタスクが完了していることを前提としています。

  • VMware vCenter 展開で使用する Cisco ACI ファブリックを設定します。

    Cisco.com の 『Cisco ACI Virtual Edge マニュアル』を参照してください。

  • ノード サブネットをプライベート サブネットとして設定し、Cisco APIC 管理アドレスにアクセスできることを確認します。

  • 同じ Cisco ACI エンドポイント グループ(EPG)に BOSH Director および Cloud Foundry コンポーネントを展開しました。

  • ナレッジ ベースの記事 「オーケストレータ向け Cisco ACI および OpFlex 接続」の注意事項を読み、ご理解ください。

手順


ステップ 1

目的の VMware vCenter データセンターを使用する Cisco APIC で VMware VMM ドメインを作成します。

ステップ 2

ESXi ハイパーバイザに接続されているスイッチポートでの通信を有効にするアタッチ可能エンティティ プロファイル(AEP)が Cisco APIC にあることを確認します。

ステップ 3

すべてのエンドポイント(BOSH Director、Cloud Foundry コンポーネント VM、およびコンテナ)を保持する VRF を作成します。

ステップ 4

外部通信用に Cisco APIC で L3Out を作成してプロビジョニングし、前のステップで作成した VRF に関連付けます。

ステップ 5

L3Out の下に、すべての宛先(0.0.0.0/0)へのトラフィックを許可する外部ネットワークを作成します。

ステップ 6

作業ディレクトリを作成し、Cisco ACI アドオン配布ファイル(dist-generics-cloudfoundryxxxxxx.tgz)を抽出します。

ステップ 7

acc_provision Debian パッケージをインストールします。

ステップ 8

マシンが開発マシンであることを確認します。このマシンは、BOSH 展開時にソース コードをコンパイルするために使用します。

必要なパッケージのリストについては、「BOSH Director の展開」セクションの「はじめる前に」を参照してください。

ステップ 9

マシンに Ruby 2.4.1 以降がインストールされていることを確認します。古いバージョンがインストールされている場合は、それらを削除し(パッケージ ruby および rubydev)、新しいバージョンの Ruby をインストールします。

ステップ 10

[BOSH (v2) CLI] をダウンロードしてインストールします。

ステップ 11

[cf CLI Debian パッケージ(cf CLI Debian package)] をインストールします。

ステップ 12

bosh-deployment および cf-deployment のソース コードを取得します。

git clone https://github.com/cloudfoundry/bosh-deployment
git clone https://github.com/cloudfoundry/cf-deployment

ステップ 13

マシンでインターネットに到達するためにプロキシが必要な場合は、次の no_proxy 環境変数を設定します。VMware vCenter サーバ、Cisco APIC サーバ、選択する BOSH Director IP (iCloudFoundry の ACI のプロビジョニング セクション)、および Cisco ACI アドオンを持つ Cloud Foundry の展開セクションを選択するシステム ドメイン)。

このドキュメントの例では、この環境変数は次のように設定されています。
no_proxy=172.28.184.150,172.28.184.85,10.1.0.2,mycf0.fab15.local

デプロイメント

Cloud Foundry と連携するための Cisco ACI のプロビジョニング

始める前に

このガイドの「Cloud Foundry 向け Cisco ACI 展開の準備」セクションのタスクを完了していることを確認します。

手順


ステップ 1

次の例を使用して、プロビジョニング構成ファイルを作成します。

環境に合わせて例の値を変更します。

例:

## Configuration for ACI Fabric
aci_config:
system_id: mycf0 	# Unique ID for this install
apic_hosts: 		# List of APIC hosts to connect to
172.28.184.150
apic_login:
username: admin
password: myadminpassword
vmm_domain: 		# CloudFoundry VMM domain config
encap_type: vxlan 	# Encap mode: vxlan or vlan
mcast_range: 		# Every VMM must use a distinct range
start: 225.20.1.1
end: 225.20.255.255
nested_inside:
type: vmware
name: fab15vds1		# Your VMware VMM domain name
# The following resources must already exist on the APIC,
# they are used, but not created by the provisioning tool.
aep: esxaep 		# The AEP for ports/VPCs
vrf: 			# VRF to place the endpoints in
name: l3out_1_vrf
tenant: common
l3out:
name: l3out1		# Used for external communication
external_networks:
  - l3out_1_net 	# Used for external contracts
#
# Networks used by CloudFoundry
#
net_config:
node_subnet: 10.1.0.1/16 	# Subnet for CloudFoundry nodes
pod_subnet: 10.2.0.1/16 	# Subnet for container IPs
extern_dynamic: 150.3.0.1/24 	# Subnet for dynamic external IPs
extern_static: 150.4.0.1/24	# Subnet for static external IPs
node_svc_subnet: 10.5.0.1/24 	# Subnet for service graphs
service_vlan: 4002 		# VLAN used by LoadBalancer services
infra_vlan: 4093 		# VLAN used by ACI infra

前述の例では、ノードサブネット 10.1.0.0/16 が BOSH Director 仮想マシン(VM)と Cloud Foundry コンポーネント VM に使用されます。次の VM 用に、この範囲内の 3 つの IP アドレスを予約します。

  • [BOSH Director]:1 つのアドレス。例:10.1.0.2

  • [GoRouter]:2 つのアドレス。たとえば、10.1.0.3 および 10.1.0.4

ステップ 2

Cisco APIC を構成し、cf-deployment の構成ファイルを生成します。

例:

acc_provision -a -u <apic username> -p <apic password> -c mycf0-prov-config.yaml -o mycf0-vars.yaml -f cloudfoundry-1.0

このコマンドは、Cloud Foundry 用の Cisco APIC を構成し、 mycf0-vars.yamlというファイルを生成します。

ステップ 3

mycf0-vars.yamlファイルの apic_dvs および apic_node_portgroupの値をメモします。


BOSH Director の展開

始める前に

BOSH Director を展開するには、いくつかのパッケージが必要です。

build-essential

libssl-dev

curl

libxsltdev

git-core

libyaml-dev

libreadline6

openssl

libreadline6-dev

sqlite3

libsqlite3-dev

wget

libxml2-dev

zlib1g-dev

libxslt-dev

zlibc

手順


ステップ 1

BOSH Director 展開パラメータ boshvars.yamlを含むファイルを作成します。

internal_cidrinternal_gw が、 ノード サブネット用に選択した値と一致していることを確認します。また、 internal_ip が BOSH Director 用に予約したアドレスに設定されていることを確認します。

例:

director_name: fab15bosh 	# Pick a name
internal_cidr: 10.1.0.0/16 	# Must match node_subnet
internal_gw: 10.1.0.1
internal_ip: 10.1.0.2 		# Reserved IP for BOSH Director
network_name: "fab15vds1/
mycf0|cloudfoundry|cfnode"  	# From mycf0vars.yaml, format is apic_dvs/apic_node_portgroup
vcenter_dc: CF 			# vCenter datacenter to use
vcenter_ds: datastore1 		# vCenter datastores to use
vcenter_ip: 172.28.184.85 	# vCenter IP
vcenter_user: root
vcenter_password: vmware
vcenter_templates: fab15boshtemplates 	# Pick a name
vcenter_vms: fab15boshvms 		# Pick a name
vcenter_disks: fab15boshdisks		# Pick a name
vcenter_cluster: cfcluster		# vCenter cluster to use

# Following lines are required if your environment requires a proxy to reach the Internet
http_proxy: http://proxywsa.esl.cisco.com:80 	# HTTP proxy
https_proxy: http://proxywsa.esl.cisco.com:80 	# HTTPS proxy
no_proxy: 172.28.184.85,10.1.0.2 		# vcenter_ip and internal_ip specified earlier

# Following line is required if your environment does not allow access to public DNS servers like 8.8.8.8
internal_dns: [171.70.168.183, 8.8.8.8] 	# List of DNS servers

ステップ 2

BOSH Director を展開します。

例:

bosh create-env bosh-deployment/bosh.yml \
-o bosh-deployment/vsphere/cpi.yml \
-o bosh-deployment/jumpbox-user.yml \
-l boshvars.yml \
--state=state.json \
--vars-store=creds.yml

環境でインターネットにアクセスするためにプロキシが必要な場合は、このパラメータも含めます: -o bosh-deployment/misc/proxy.yml

ご使用の環境でパブリック DNS サーバを使用した名前解決が許可されていない場合は、このパラメータも含めます: -o bosh-deployment/misc/dns.yml

ステップ 3

次のコマンドを使用して、使いやすい BOSH Director のエイリアスを作成します。bosh alias -env <aliasname> -e <Director IP> --ca cert "$(bosh int creds.yml --path /director_ssl/ca)"

例:

bosh alias-env fab15bosh -e 10.1.0.2 --ca cert "$(bosh int creds.yml path /director_ssl/ca)"

ステップ 4

BOSH CLI で使用するいくつかの環境変数を設定します。

例:

export BOSH_ENVIRONMENT=<aliasname>
export BOSH_CLIENT=admin
export BOSH_CLIENT_SECRET=`bosh int creds.yml path
/admin_password`

bosh env

You should

ステップ 5

次のコマンドを入力して、展開が成功したことを確認します。boshenv

出力は以下の例のようになります。
Using environment '10.1.0.2' as client 'admin'
Name 		fab15bosh
UUID 		48cd341ed0be4d6da2aa7fa76b62d985
Version 	262.3.0 (00000000)
CPI 		vsphere_cpi
Features 	compiled_package_cache: disabled
			config_server: disabled
			dns: disabled
			snapshots: disabled
User 		admin
Succeeded

Cisco ACI アドオンを持つ Cloud Foundry の展開

手順


ステップ 1

mycf0-cloud-config.ymlファイルを作成して、BOSH クラウド構成を設定します。

例:

azs:
- name: z1
	cloud_properties:
		datacenters:
		- clusters: [cfcluster: {}] # vCenter cluster to use
name: z2
	cloud_properties:
		datacenters:
		- clusters: [cfcluster: {}] # vCenter cluster to use
name: z3
	cloud_properties:
		datacenters:
		- clusters: [cfcluster: {}] # vCenter cluster to use
		
vm_types:
- name: default
	cloud_properties:
		cpu: 2
		ram: 1024
		disk: 3240
-name: large
	cloud_properties:
		cpu: 2
		ram: 4096
		disk: 20_240
-name: small
	cloud_properties:
		cpu: 1
		ram: 4096
		disk: 4096
- name: minimal
	cloud_properties:
		cpu: 2
		ram: 8192
		disk: 30_240
-name: small-highmem
	cloud_properties:
		cpu: 4
		ram: 10240
		disk: 51200
-name: sharedcpu
	cloud_properties:
		cpu: 1
		ram: 2048
		disk: 3240
		
disk_types:
- name: default
	disk_size: 3000
- name: large
	disk_size: 50_000
-disk_size: 1024
	name: 1GB
-disk_size: 5120
	name: 5GB
-disk_size: 10240
	name: 10GB
-disk_size: 100240
	name: 100GB
	
vm_extensions:
- name: 5GB_ephemeral_disk
- name: 10GB_ephemeral_disk
- name: 50GB_ephemeral_disk
- name: 100GB_ephemeral_disk
- name: 500GB_ephemeral_disk
- name: 1TB_ephemeral_disk
- name: ssh-proxy-and-router-lb
name: diego-ssh-proxy-networkproperties
	cloud_properties:
		ports:
			- host: 80
			- host: 443
			- host: 2222
name: cf-tcp-router-network-properties
name: cf-router-network-properties
	cloud_properties:
		ports:
			- host: 10241123
			- host: 80
			- host: 443
			- host: 2222
			
networks:
- name: default
	type: manual
	subnets:
	- range: 10.1.0.0/16 				# internal_cidr from boshvars.yml
	  gateway: 10.1.0.1 				# internal_gw from boshvars.yml
	  azs: [z1, z2, z3]
	  dns: [171.70.168.183, 8.8.8.8] 	# Use internal_dns from boshvars.yml, else [8.8.8.8]
	  reserved: []
      static: [10.1.0.3, 10.1.0.4] # Reserved IPs for GoRouter

ステップ 2

次のコマンドを使用して、クラウド構成を更新します。

bosh updatecloudconfig \
mycf0-cloud-config.yml \
-o manifest-generation/cloud_config_ops.yml
-l mycf0-vars.yaml

ステップ 3

必要なステムセルを BOSH Director にアップロードします。

export STEMCELL_VERSION=$(bosh int cf-deployment/cf-deployment.yml
--path /stemcells/alias=default/version)

bosh upload-stemcell
https://bosh.io/d/stemcells/bosh-vsphere-esxi-ubuntu-trusty-go_agent?
v=$STEMCELL_VERSION

ステップ 4

Cisco ACI アドオン BOSH リリースファイルを BOSH Director にアップロードします。

bosh upload-release release/aci-containers-release0.1.0-beta1.tar.gz

ステップ 5

展開用の DNS 名(システムドメイン)を選択し、この名前が GoRouter 用に選択した予約済み IP アドレスに解決されることを確認します。(たとえば、10.1.0.3 および 10.1.0.4)

ステップ 6

ワイルドカード DNS 解決が許可されていることを確認します。

つまり、システムドメインが mycf0.fab15.local の場合、*.mycf0.fab15.local などのすべての名前が GoRouter のアドレスに解決されます。

ステップ 7

cf-deployment 操作ファイル router-static-cf.yml を作成して、GoRouter にスタティック アドレスを割り当てます。

---
- type: replace
	path:
/instance_groups/name=router/networks/name=default/static_ips?
# Replace the addresses below with IPs reserved for GoRouter
value: ["10.1.0.3", "10.1.0.4"]

ステップ 8

Cloud Foundry を展開します。

例:

bosh deploy -d cf cf-deployment/cf-deployment.yml \
-o manifest-generation/cf_ops.yml \
-o router-static-cf.yml \
--vars-store=mycf0-vars-store.yml \
-l mycf0-vars.yaml \
-v system_domain=<your-system-domain>

your-system-domainに置き換えてください。展開には時間がかかる場合があります。

ステップ 9

CloudFoundry が正常に展開されたことを確認します。

cf login --skip-ssl-validation -a https://api.your-system-domain-u admin -p $(bosh int mycf0-vars-store.yml path /cf_admin_password)
出力は以下の例のようになります。
API endpoint: https://api.your-system-domain
Authenticating...
OK

Targeted org system
API endpoint: https://api.<yoursystemdomain> (API version:2.99.0)
User: 	admin
Org: 	system
Space: 	No space targeted, use 'cf target -s SPACE'

Cloud Foundry からの Cisco ACI アドオンの削除

インストールされている Cisco ACI アドオンは、このセクションのコマンドを実行することで削除できます。コマンドを実行すると、Cloud Foundry 展開では Cisco ACI が純粋なアンダーレイとして使用されます。

手順


Cisco ACI アドオンを削除します。

例:

bosh deploy -d cf cf-deployment/cf-deployment.yml \
-o router-static-cf.yml \
--vars-store=mycf0-vars-store.yml \
-l mycf0-vars.yaml \
-v system_domain=<your-system-domain>

ACI ファブリックからの Cloud Foundry のプロビジョニング解除

このセクションでは、ACI ファブリックから Cloud Foundry をアップグレードする方法について説明します。

始める前に

Cisco ACI ファブリックから Cloud Foundry インストールに割り当てられたリソースのプロビジョニングを解除する前に、Cloud Foundry と BOSH Director が削除されていることを確認します。

手順


ステップ 1

Cloud Foundry の削除

例:

bosh delete-deployment -d cf

ステップ 2

BOSH ディレクタを削除します。

例:

bosh delete-env bosh-deployment/bosh.yml \
-o bosh-deployment/vsphere/cpi.yml \
-o bosh-deployment/jumpbox-user.yml \
-l bosh-vars.yml \
--state=state.json \
--vars-store=creds.yml

ステップ 3

ファブリックのプロビジョニングを解除します。

例:

acc_provision -a -d -u <apic username> -p <apic password> -c mycf0-prov-config.yaml -o mycf0-vars.yaml -f cloudfoundry-1.0 

(注)  

 
このコマンドは、Cisco ACI テナントも削除します。共有テナントを使用している場合、このコマンドは危険です。

運用者

Cisco ACI 固有の拡張機能の使用

Python CLI スクリプト cf-aci.pyを使用して、Cisco ACI 固有の Cloud Foundry 拡張機能にアクセスできます。拡張機能には、EPG 注釈と外部 IP アドレスが含まれます。

Python CLI スクリプトは、配布ファイルの scripts/ ディレクトリにあります(dist-generics-cloudfoundryxxxxxx.tgz)。ほとんどのコマンドは自明であり、1 つまたは 2 つの引数を取ります。

手順


次の例を使用して、Python CLI スクリプトを実行して、Cisco ACI 固有の Cloud Foundry 拡張機能にアクセスします。

./scripts/cf-aci.py --help
Usage: cf-aci.py <command> <command-arguments>
Available commands: 
	app-ext-ip <app-name> Get external IP of an app
	app-vip <app-name> Get virtual IP of an app
	epg-app <app-name> Get EPG annotation of an app
	epg-org <org-name> Get EPG annotation of an org
	epg-space <space-name> Get EPG annotation of a space
	set-app-ext-ip <app-name> <IP-address> Set external IP on an app
	set-epg-app <app-name> <EPG-name> Set EPG annotation on an app
	set-epg-org <app-name> <EPG-name> Set EPG annotation on an org
	set-epg-space <app-name> <EPG-name> Set EPG annotation on a space
	unset-app-ext-ip <app-name> Remove external IP of an app
	unset-epg-app <app-name> Remove EPG annotation of an app
	unset-epg-org <org-name> Remove EPG annotation of an org
	unset-epg-space <space-name> Remove EPG annotation of a space

サポート リクエストのログ ファイルの収集

問題が発生した場合、Cisco サポートは、問題のトラブルシューティングに役立つログ ファイルの送信を依頼する場合があります。このセクションの手順に従って、Cloud Foundry のログ ファイルを収集します。

手順


ステップ 1

展開内の VM インスタンスのリストを取得します。

例:

bosh vms -d cf

ステップ 2

目的の VM インスタンス(Diego-api または Diego-cell)に関するレポートを生成します。

例:

bosh ssh -d cf <instance> -c 'sudo/var/vcap/packages/apic-host-report/apic-host-report.sh'

ステップ 3

出力に示されているレポート ファイルに注意してください。

ステップ 4

レポート ファイルを上書きコピーします。

例:

bosh scp -d cf <instance>:<path/to/report-file> .