シリーズIDは2000後半でした。今年頭に合格した人が1000前半だったことを考えると順調に増えていってますねー。
AWS のソリューションアーキテクトアソシエイトよりは難しかったと思います。
(プロフェッショナルはまだ受けたことないのでわからない)
ちなみに
英語版だとAssociate Cloud Engineer というのがベータで始まったので、
AWS ソリューションアーキテクトアソシエイト相当はこの資格になるのかな?
version 1.0 時代のmemo 見つかったので引っ張り出してきた。
最新は1.4 なので色々変わってると思うけど。
http://rancher.com/rancher-os/
- sshの公開鍵もこれに書く
- vCenterのコンソールからコピペは難しいので、作業用のためにrancherユーザにパスワード設定して、sshで入って作業するのもあり?
sudo ros install -c cloud-config.yml -d /dev/sda sudo ros service list sudo ros service enable open-vm-tools sudo ros service up open-vm-tools sudo ros service enable rancher-server sudo ros service up rancher-server
cloud-config.yaml sample
#cloud-config hostname: rancheros1-1 ssh_authorized_keys: - ssh-rsa "sshの公開鍵" user@host rancher: network: interfaces: eth0: address: x.x.x.x/y gateway: x.x.x.1 mtu: 1500 dhcp: false dns: nameservers: - y.y.y.1 - y.y.y.2
# ホスト network 設定変更
sudo ros config set rancher.network.interfaces.eth1.address 1.1.1.1/24 sudo system-docker restart network
# nfs mount
```
NFS Server: NFS server ip address or hostname.
Export Base Directory: Exported shared directory on the NFS server.
NFS Version: The NFS version to use, current used version is 4.
Mount Option: Comma delimited list of default mount options, for example: ‘proto=udp’. Do not specify nfsvers option, it will be ignored
```
## volumeの設定
# コンテナnetwork
## network 分離
Network Policy Manager カタログをデプロイすれば、サービス内、スタック内では許可、その他は拒否、というような設定が可能。
ちなみにスタックから起動せず、インフラストラクチャ - コンテナから起動したコンテナはどのスタックにも紐づかないので
"その他: 拒否" にしている場合はどのコンテナ間とも疎通は不可となる。
ping
%のあとにroute domainのID
# ping 192.168.0.1%1
rdsh でid指定してそのroute domainのnetwork内のshellに移動する
# rdsh 1 # ping 192.168.0.1
defualtは/Common
# tmsh # cd /partition
例えば
example.com-http
example.com-https
のようなpoolがある場合
CLIENT_ACCEPTEDではTCP::local_portでportが判別できるので
when CLIENT_ACCEPTED { switch -exact [TCP::local_port] { 80 { set pool_service "http" } 443 { set pool_service "https" } } set pool_prefix "example.com-" if ( # 何か条件分岐 ) { pool $pool_prefix$pool_service } }
とすればiruleまとめられる
pool hogehoge-pool
などを書いた場合、そのpoolが存在していないと構文エラーとなり
iruleを保存できない
ただし、変数などを定義して
set hogehoge "hogehoge-pool" pool $hogehoge
とした場合はiruleは保存できるか、そのiruleが実行された際にエラーとなり、
iruleはそこで中断する。
set hogehoge "hogehoge-pool" if { [HTTP::uri] starts_with "/hoge/" } { pool $hogehoge log local0.info "wryyyyyyyy" }
hogehoge-poolがない場合、pool $hogehoge の時点でエラーになるため、
log local0.info は実行されずログにwryyyyyyyと出ない。
HTTP::redirect でredirectする場合は
HTTP::header insertなどを書いても無視される
1つのirule内の処理を終える場合
return
iruleが複数ファイルに分かれている場合に、
同じeventの処理を終える場合
event disable
例えば
virtualserverに
が適用されていて、HTTP_REQUESTで書かれているとする。
普通に適用すると、irule1の内容のあと、irule2も評価されるけど、
特定の条件があった場合には、irule1でHTTP_REQUESTを終えたい場合、
irule1内にevent disable
と書く
httpコンテンツcacheする場合、だいたいvarnishとかnginx、apacheでやるし、
最近だとCDNもあったりするので、機能としてあるのは知ってたけど使わなかった機能。
とはいえ突発的なアクセスがきて、急に構成変更ができない場合にさくっとできるように調べて見た。
とりあえずまとめ
f5 document
Local Traffic - Virtual Servers - Profiles - Services - Web Acceleration
defaultのprofileはいぢりだくないので、webaccelerationをparent profile として新規にprofile 作成
webacceleration-test
2 vip (4 virtualserver)に同一のprofileを適用してテスト
アクセスするとランダムな値を返すアプリを用意
1. 192.168.0.11:80
2. 192.168.0.11:443
3. 192.168.0.12:80
4. 192.168.0.12:443
1と2で同じキャッシュ、3と4で同じキャッシュが返ってきた。
hostsに
192.168.0.11 a.example.com b.example.com
とかいて
にアクセスすると異なるキャッシュが返ってきた。
さらにこのキャッシュが残っている状態で
192.168.0.12 a.example.com b.example.com
に書き換えて192.168.0.12のサーバにアクセスすると
にアクセスすると、↑と同じキャッシュが返ってきた。
(もしくは curl 192.168.0.12 -H 'host: a.example.com')
というわけで、同一webacceleration profileで
hostヘッダをkeyとしてキャッシュを使い分けてるみたい。
まあ、普通にインターネット上に公開している場合、異なるサーバ間で
hostヘッダが同じになることはないので気にしなくてよいかもしれないけど
hostヘッダ偽装により想定外のコンテンツが返る可能性があるので、
virtualserverごとにprofileはわけたほうが無難
sar -n TCP、-n IPなどでTCP/IPの統計も見たい場合sadcに"-S SNMP"オプション追加が必要
man sar
With the TCP keyword, statistics about TCPv4 network traffic are reported. Note that
TCPv4 statistics depend on sadc option "-S SNMP" to be collected. The following val-
ues are displayed (formal SNMP names between square brackets):
/etc/cron.d/sysstatで実行されている/usr/lib64/sa/sa1は内部的にsadcを実行していて、
オプションは
# grep -H SYSCONFIG_DIR /usr/lib64/sa/sa1 /usr/lib64/sa/sa1:SYSCONFIG_DIR=/etc/sysconfig /usr/lib64/sa/sa1:[ -r ${SYSCONFIG_DIR}/sysstat ] && . ${SYSCONFIG_DIR}/sysstat
のとおり/etc/sysconfig/sysstat を読むのでここに追加する
```
SADC_OPTIONS="-S DISK -S SNMP"
```
RHEL6だと-S DISKは標準で書かれていた。