乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      Docker編排工具調(diào)研:Rancher – 陳飛 – 碼農(nóng)

       浸心閣 2016-03-03

      Rancher提供了一套完整的Docker編排解決方案(重點(diǎn)是開(kāi)源的)。功能上包括網(wǎng)絡(luò),存儲(chǔ),負(fù)載均衡,安全,服務(wù)發(fā)現(xiàn)和資源管理等。Rancher可以管理DigitalOcean、AWS、OpenStack等云主機(jī),自動(dòng)創(chuàng)建Docker運(yùn)行環(huán)境,實(shí)現(xiàn)跨云管理。使用上可以通過(guò)Web界面或者命令行方式進(jìn)行操作。

      下面介紹一下使用上的一些體會(huì),并且分析一下一些有意思的特性的技術(shù)實(shí)現(xiàn)。先說(shuō)下整體上的體驗(yàn),Rancher在使用上非常流暢,當(dāng)然是指排除“功夫王”的影響之外。學(xué)習(xí)成本也比較小,稍微有一點(diǎn)Docker知識(shí)的同學(xué),都能很快上手。

      運(yùn)行

      Rancher提供了Docker鏡像,直接通過(guò)docker run -d --restart=always -p 8080:8080 rancher/server命令運(yùn)行即可。除了標(biāo)準(zhǔn)的Docker鏡像之外,Rancher還提供了手動(dòng)、Vagrant、Puppet、Ansible等方式安裝。

      這里要提到一點(diǎn),Rancher也是采用Master-Agent的方式,但是Rancher的Agent也是以容器方式運(yùn)行的,虛機(jī)環(huán)境修改很少。

      Rancher容器是采用的胖容器方式,會(huì)運(yùn)行Cattle,Mysql,rancher-compose-executor,go-machine-service等幾個(gè)服務(wù),以及crontab等定時(shí)任務(wù)。其中值得一提Cattle,Cattle是Rancher實(shí)現(xiàn)的一套基于Docker的編排引擎,初步上來(lái)看跟Docker Swarm類似,是用Java語(yǔ)言實(shí)現(xiàn)的,初步看代碼實(shí)現(xiàn)的功能還是比較多的。

      另外需要注意,由于Rancher目前還僅支持管理墻外的云服務(wù),所以在墻內(nèi)運(yùn)行的話會(huì)導(dǎo)致創(chuàng)建虛機(jī)失敗率非常高。另外Rancher運(yùn)行至少需要1G的內(nèi)存,這也導(dǎo)致小編在DO上創(chuàng)建512MB的Droplet運(yùn)行Rancher服務(wù)失敗,辛辛苦苦排查了半天,如果你遇到下面類似的異常日志,那說(shuō)明你得換一個(gè)大一點(diǎn)的Droplet:

      2015-10-12 10:17:58,910 INFO    [main] [ConsoleStatus] [99/102] [43348ms] [8ms] Starting register
      runtime/cgo: pthread_create failed: Resource temporarily unavailable
      SIGABRT: abort
      PC=0x6f8177 m=0
      
      goroutine 0 [idle]:
      
      goroutine 1 [running]:
      runtime.systemstack_switch()
          /usr/local/go/src/runtime/asm_amd64.s:216 fp=0xc820024770 sp=0xc820024768
      runtime.main()
          /usr/local/go/src/runtime/proc.go:49 +0x62 fp=0xc8200247c0 sp=0xc820024770
      runtime.goexit()
          /usr/local/go/src/runtime/asm_amd64.s:1696 +0x1 fp=0xc8200247c8 sp=0xc8200247c0
      
      goroutine 17 [syscall, locked to thread]:
      runtime.goexit()
          /usr/local/go/src/runtime/asm_amd64.s:1696 +0x1
      
      rax    0x0
      rbx    0xc30488
      rcx    0x6f8177
      rdx    0x6
      rdi    0x8c
      rsi    0x8c
      rbp    0x734b32
      rsp    0x7ffe7ce05578
      r8     0xa
      r9     0x27ae880
      r10    0x8
      r11    0x202
      r12    0x27b0bc0
      r13    0x8ed580
      r14    0x0
      r15    0x8
      rip    0x6f8177
      rflags 0x202
      cs     0x33
      fs     0x0
      gs     0x0
      runtime/cgo: pthread_create failed: Resource temporarily unavailable
      SIGABRT: abort
      PC=0x6f8177 m=0
      

      另外還有一個(gè)需要注意的,Rancher容器啟動(dòng)之后并不能立即對(duì)外提供服務(wù),Rancher內(nèi)部服務(wù)啟動(dòng)需要耗費(fèi)一定的時(shí)間。從日志上看大概需要將近1分鐘的啟動(dòng)時(shí)間,這個(gè)有待優(yōu)化??!所以如果你運(yùn)行完容器之后,訪問(wèn)界面拋出Connection Refuse Exception不要以為是啟動(dòng)方式有問(wèn)題,請(qǐng)耐心等待......

      09:36:32.655 [main] INFO  ConsoleStatus - [DONE ] [50277ms] Startup Succeeded, Listening on port 8081
      

      虛機(jī)

      從Web界面上看,操作是非常簡(jiǎn)便的,例如對(duì)于DO來(lái)說(shuō)直接輸入APPKEY就可以完成Droplet的創(chuàng)建。目前Rancher還僅支持Ubuntu版本的虛機(jī)。從運(yùn)行日志上看,Rancher在初始化虛機(jī)的時(shí)候做了這么幾件事情:

      • 通過(guò)定制化的Docker Machine創(chuàng)建虛機(jī),完成Docker安裝
      • 初始化SSH證書(shū)
      • 上傳rancher.tar.gz到虛機(jī)
      • 拉取rancher/agent:v0.8.2鏡像

      可以看出環(huán)境依賴非常少。Docker配置也比較標(biāo)準(zhǔn),除了添加了TLS認(rèn)證之外沒(méi)有額外的配置。主機(jī)配置也就是一些證書(shū)文件,沒(méi)有額外的配置。從這方面來(lái)看Rancher本身是比較容易支持?jǐn)U展的,引入對(duì)阿里云的支持也會(huì)比較簡(jiǎn)單。但是另外一方面,由于代碼架構(gòu)上的原因,第三方開(kāi)發(fā)支持云服務(wù)可能會(huì)比較糾結(jié),比較可行的方式還是Rancher和各云服務(wù)提供商配合。這可能也會(huì)限制Rancher在國(guó)內(nèi)的推廣。

      另外創(chuàng)建出來(lái)的虛機(jī)僅支持根據(jù)ssh key方式登陸,不支持root密碼登陸。目前有兩種方式可以ssh登陸到虛機(jī),一個(gè)是通過(guò)Rancher提供的Web SSH界面,一個(gè)是下載主機(jī)配置,使用里面的id_rsa文件來(lái)登陸ssh -i id_rsa root@<IP_OF_HOST>。

      虛機(jī)支持按Tag屬性管理,不支持直接按組管理,對(duì)于多租戶場(chǎng)景可以通過(guò)Rancher提供的Management Environment功能來(lái)實(shí)現(xiàn)。

      另外一個(gè)比較有意思的是Rancher提供了一個(gè)View in API功能,返回的是一個(gè)JSON格式數(shù)據(jù),其中l(wèi)inks字段包含了一些有關(guān)的接口地址,這個(gè)功能對(duì)二次功能的開(kāi)發(fā)比較友好,可以通過(guò)接口API獲取API,這樣就不必學(xué)習(xí)接口調(diào)用方式、參數(shù)等等內(nèi)容了。

      {
      "id": "1h1",
      "type": "host",
      "links": {
      "self": "…/v1/projects/1a5/hosts/1h1",
      "account": "…/v1/projects/1a5/hosts/1h1/account",
      "clusters": "…/v1/projects/1a5/hosts/1h1/clusters",
      "containerEvents": "…/v1/projects/1a5/hosts/1h1/containerevents",
      "hostLabels": "…/v1/projects/1a5/hosts/1h1/hostlabels",
      "instances": "…/v1/projects/1a5/hosts/1h1/instances",
      "ipAddresses": "…/v1/projects/1a5/hosts/1h1/ipaddresses",
      "loadBalancerHostMaps": "…/v1/projects/1a5/hosts/1h1/loadbalancerhostmaps",
      "loadBalancers": "…/v1/projects/1a5/hosts/1h1/loadbalancers",
      "physicalHost": "…/v1/projects/1a5/hosts/1h1/physicalhost",
      "serviceEvents": "…/v1/projects/1a5/hosts/1h1/serviceevents",
      "storagePools": "…/v1/projects/1a5/hosts/1h1/storagepools",
      "stats": "…/v1/projects/1a5/hosts/1h1/stats",
      "hostStats": "…/v1/projects/1a5/hosts/1h1/hoststats",
      "containerStats": "…/v1/projects/1a5/hosts/1h1/containerstats",
      },
      "actions": {
      "update": "…/v1/projects/1a5/hosts/1h1/?action=update",
      "deactivate": "…/v1/projects/1a5/hosts/1h1/?action=deactivate",
      },
      "name": "rancher",
      "state": "active",
      "accountId": "1a5",
      "agentState": null,
      "computeTotal": 1000000,
      "created": "2015-10-13T04:08:55Z",
      "createdTS": 1444709335000,
      "description": null,
      "info": {
      "osInfo": {
      

      同時(shí)還支持基礎(chǔ)層面的監(jiān)控,而且是用WebSocket實(shí)現(xiàn)的,"url": "ws://104.236.151.239:8080/v1/hoststats"。看代碼應(yīng)該是沒(méi)有用到什么第三方的監(jiān)控解決方案,比如ELK、Graphite之類的,應(yīng)該Cattle自行實(shí)現(xiàn)的。猜測(cè)實(shí)現(xiàn)是在io.cattle.platform.host.stats.api。不過(guò)貌似不是特別穩(wěn)定,窗口切換后會(huì)導(dǎo)致監(jiān)控?cái)?shù)據(jù)不再刷新。像下圖這種情況:

      容器

      容器編排本身并沒(méi)有什么特別的功能,基本是對(duì)Docker命令的封裝。其中有幾個(gè)特性值得關(guān)注,一個(gè)是Managed網(wǎng)絡(luò),第二個(gè)是健康檢查,第三個(gè)是調(diào)度策略。下面一個(gè)個(gè)來(lái)看:

      Managed網(wǎng)絡(luò)

      Rancher在Docker本身提供的幾種網(wǎng)絡(luò)基礎(chǔ)上提供了一種叫做Managed的網(wǎng)絡(luò)特性,按照其官方說(shuō)法是:

      The Rancher network uses IPsec tunnelling and encryption for security

      簡(jiǎn)單理解就是在容器之間構(gòu)建了一條私有網(wǎng)絡(luò),只有容器與容器之間可以訪問(wèn)。Rancher會(huì)為每個(gè)容器分配一個(gè)10.42.*.*的私有網(wǎng)絡(luò)地址,這個(gè)地址只在容器之間是可達(dá)的,對(duì)外不可見(jiàn),有點(diǎn)類似一種純軟件上的VPC方式。

      從上面的部署上看,Rancher并沒(méi)有對(duì)網(wǎng)絡(luò)有什么特殊的設(shè)置,它是如何實(shí)現(xiàn)的呢?從路由上可以看出,對(duì)于10.42網(wǎng)段的路由是通過(guò)docker0接口,docker0的特殊的配置了IP也包含了10.42網(wǎng)段。

      root@rancher:~# ip route
      default via 192.241.212.1 dev eth0
      10.42.0.0/16 dev docker0  proto kernel  scope link  src 10.42.0.1
      172.17.0.0/16 dev docker0  proto kernel  scope link  src 172.17.42.1
      192.241.212.0/24 dev eth0  proto kernel  scope link  src 192.241.212.19
      
      root@rancher:~# ip addr
      4: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
          link/ether 02:42:21:6e:92:f5 brd ff:ff:ff:ff:ff:ff
          inet 172.17.42.1/16 scope global docker0
             valid_lft forever preferred_lft forever
          inet 10.42.0.1/16 scope global docker0
             valid_lft forever preferred_lft forever
          inet6 fe80::42:21ff:fe6e:92f5/64 scope link
             valid_lft forever preferred_lft forever  
      

      實(shí)現(xiàn)流量轉(zhuǎn)發(fā)應(yīng)該是靠iptables實(shí)現(xiàn)的,規(guī)則如下:

      Chain PREROUTING (policy ACCEPT)
      target     prot opt source               destination
      CATTLE_PREROUTING  all  --  anywhere             anywhere
      DOCKER     all  --  anywhere             anywhere             ADDRTYPE match dst-type LOCAL
      
      Chain INPUT (policy ACCEPT)
      target     prot opt source               destination
      
      Chain OUTPUT (policy ACCEPT)
      target     prot opt source               destination
      DOCKER     all  --  anywhere            !loopback/8           ADDRTYPE match dst-type LOCAL
      
      Chain POSTROUTING (policy ACCEPT)
      target     prot opt source               destination
      CATTLE_POSTROUTING  all  --  anywhere             anywhere
      MASQUERADE  all  --  172.17.0.0/16        anywhere
      MASQUERADE  udp  --  172.17.0.4           172.17.0.4           udp dpt:ipsec-nat-t
      MASQUERADE  udp  --  172.17.0.4           172.17.0.4           udp dpt:isakmp
      
      Chain CATTLE_POSTROUTING (1 references)
      target     prot opt source               destination
      ACCEPT     all  --  10.42.0.0/16         169.254.169.250
      MASQUERADE  tcp  --  10.42.0.0/16        !10.42.0.0/16         masq ports: 1024-65535
      MASQUERADE  udp  --  10.42.0.0/16        !10.42.0.0/16         masq ports: 1024-65535
      MASQUERADE  all  --  10.42.0.0/16        !10.42.0.0/16
      MASQUERADE  tcp  --  172.17.0.0/16        anywhere             masq ports: 1024-65535
      MASQUERADE  udp  --  172.17.0.0/16        anywhere             masq ports: 1024-65535
      
      Chain CATTLE_PREROUTING (1 references)
      target     prot opt source               destination
      DNAT       udp  --  anywhere             anywhere             ADDRTYPE match dst-type LOCAL udp dpt:ipsec-nat-t to:10.42.241.7:4500
      DNAT       udp  --  anywhere             anywhere             ADDRTYPE match dst-type LOCAL udp dpt:isakmp to:10.42.241.7:500
      DNAT       tcp  --  anywhere             anywhere             ADDRTYPE match dst-type LOCAL tcp dpt:http-alt to:10.42.75.19:8080
      
      Chain DOCKER (2 references)
      target     prot opt source               destination
      DNAT       udp  --  anywhere             anywhere             udp dpt:ipsec-nat-t to:172.17.0.4:4500
      DNAT       udp  --  anywhere             anywhere             udp dpt:isakmp to:172.17.0.4:500
      

      對(duì)iptables規(guī)則本身不是特別了解,所以只能轉(zhuǎn)包看看網(wǎng)絡(luò)包是如何被轉(zhuǎn)發(fā)的。構(gòu)建一個(gè)兩個(gè)虛機(jī)的測(cè)試環(huán)境,創(chuàng)建容器之后,讓其中一個(gè)容器nc監(jiān)聽(tīng)一個(gè)端口,然后在另外一臺(tái)虛機(jī)的容器中nc連接這個(gè)端口。在Docker自身的網(wǎng)絡(luò)模型中,這種方式是不能work的,因?yàn)樵谝粋€(gè)中隨意open一個(gè)端口,由于沒(méi)有在docker run中設(shè)置export端口,所以外界是無(wú)法訪問(wèn)的。但是Rancher的這種網(wǎng)絡(luò)結(jié)構(gòu)卻可以實(shí)現(xiàn)這一點(diǎn)。在虛機(jī)一上tcpdump -i eth0 host 45.55.29.83,在虛機(jī)一的容器中tcpdump -i eth0,這是可以發(fā)現(xiàn)實(shí)際上數(shù)據(jù)包是通過(guò)IPsec封裝傳輸?shù)侥繕?biāo)容器的,猜測(cè)實(shí)際網(wǎng)絡(luò)傳輸是UDP協(xié)議封裝的:

      tcpdump -i eth0 host 45.55.29.83
      12:10:44.663797 IP 192.241.212.19.1024 > 45.55.29.83.ipsec-nat-t: isakmp-nat-keep-alive
      12:10:47.229600 IP 45.55.29.83.ipsec-nat-t > 192.241.212.19.ipsec-nat-t: UDP-encap: ESP(spi=0x09b0aceb,seq=0x2f), length 100
      12:10:47.230028 IP 192.241.212.19.1024 > 45.55.29.83.ipsec-nat-t: UDP-encap: ESP(spi=0x0b788656,seq=0x10), length 100
      12:10:47.230495 IP 45.55.29.83.ipsec-nat-t > 192.241.212.19.ipsec-nat-t: UDP-encap: ESP(spi=0x09b0aceb,seq=0x30), length 100
      12:10:47.230579 IP 45.55.29.83.ipsec-nat-t > 192.241.212.19.ipsec-nat-t: UDP-encap: ESP(spi=0x09b0aceb,seq=0x31), length 100
      12:10:47.230602 IP 45.55.29.83.ipsec-nat-t > 192.241.212.19.ipsec-nat-t: UDP-encap: ESP(spi=0x09b0aceb,seq=0x32), length 100
      12:10:47.230665 IP 192.241.212.19.1024 > 45.55.29.83.ipsec-nat-t: UDP-encap: ESP(spi=0x0b788656,seq=0x11), length 100
      12:10:47.231275 IP 192.241.212.19.1024 > 45.55.29.83.ipsec-nat-t: UDP-encap: ESP(spi=0x0b788656,seq=0x12), length 100
      12:10:47.231511 IP 45.55.29.83.ipsec-nat-t > 192.241.212.19.ipsec-nat-t: UDP-encap: ESP(spi=0x09b0aceb,seq=0x33), length 100
      12:10:47.511757 IP 45.55.29.83.ipsec-nat-t > 192.241.212.19.ipsec-nat-t: isakmp-nat-keep-alive
      
      tcpdump -i eth0
      16:10:47.229876 IP 10.42.116.141.36379 > 10.42.75.19.1234: Flags [S], seq 867849729, win 29200, options [mss 1460,sackOK,TS val 289931 ecr 0,nop,wscale 8], length 0
      16:10:47.229941 IP 10.42.75.19.1234 > 10.42.116.141.36379: Flags [S.], seq 4135689986, ack 867849730, win 28960, options [mss 1460,sackOK,TS val 10776863 ecr 289931,nop,wscale 8], length 0
      16:10:47.230535 IP 10.42.116.141.36379 > 10.42.75.19.1234: Flags [.], ack 1, win 115, options [nop,nop,TS val 289932 ecr 10776863], length 0
      16:10:47.230623 IP 10.42.116.141.36379 > 10.42.75.19.1234: Flags [P.], seq 1:7, ack 1, win 115, options [nop,nop,TS val 289932 ecr 10776863], length 6
      16:10:47.230638 IP 10.42.75.19.1234 > 10.42.116.141.36379: Flags [.], ack 7, win 114, options [nop,nop,TS val 10776863 ecr 289932], length 0
      16:10:47.230642 IP 10.42.116.141.36379 > 10.42.75.19.1234: Flags [F.], seq 7, ack 1, win 115, options [nop,nop,TS val 289932 ecr 10776863], length 0
      16:10:47.231246 IP 10.42.75.19.1234 > 10.42.116.141.36379: Flags [F.], seq 1, ack 8, win 114, options [nop,nop,TS val 10776863 ecr 289932], length 0
      16:10:47.231546 IP 10.42.116.141.36379 > 10.42.75.19.1234: Flags [.], ack 2, win 115, options [nop,nop,TS val 289932 ecr 10776863], length 0
      

      不得不說(shuō),這個(gè)特性非常贊!很多場(chǎng)景都迎刃而解,比如像測(cè)試環(huán)境快速構(gòu)建就有這種需求。開(kāi)發(fā)工程師完成編碼之后進(jìn)行快速驗(yàn)證,申請(qǐng)一個(gè)測(cè)試環(huán)境容器(假設(shè)是一個(gè)Ubuntu),第一步就是把代碼包上傳,然后改BUG后再上傳,比較土的做法就是nc。但是由于Docker的網(wǎng)絡(luò)限制,這種需求不太好支持。但是Rancher實(shí)現(xiàn)的這種虛擬網(wǎng)絡(luò)能夠很好的解決這類訴求。

      健康檢查 && 調(diào)度策略

      Rancher還自帶了一個(gè)Health Check功能,然而貌似并沒(méi)有看到實(shí)際作用。另外比較擔(dān)心如果管理規(guī)模比較大的容器集群時(shí),健康檢查所帶來(lái)的主節(jié)點(diǎn)的負(fù)載壓力會(huì)不會(huì)較大,進(jìn)而影響正常功能使用?

      Rancher的調(diào)度策略也比較有意思,最開(kāi)始以為也是什么CPU、Memory到了多少擴(kuò)容多少個(gè)容器之類的策略。實(shí)際一看發(fā)現(xiàn)Rancher還是比較務(wù)實(shí)的,只是實(shí)現(xiàn)了類似Swarm的Affinity的調(diào)度功能,通過(guò)這個(gè)功能可以完成一些有狀態(tài)容器的編排,還是比較實(shí)用的,至少比根據(jù)CPU擴(kuò)容靠譜多了。

      當(dāng)然Rancher還有很多有意思的特性,例如整合了docker compose(話說(shuō)貌似docker compose就合到Rancher了),可以實(shí)現(xiàn)一些固定場(chǎng)景部署的自動(dòng)化操作;還有Stack的概念,支持拓?fù)湔故?;這里就不一一介紹了,有興趣的同學(xué)可以嘗試一下。

      服務(wù)發(fā)現(xiàn) && 負(fù)載均衡

      提到容器編排肯定是少不了服務(wù)發(fā)現(xiàn)和負(fù)載均衡的,Rancher的服務(wù)發(fā)現(xiàn)是基于DNS實(shí)現(xiàn)的,具體實(shí)現(xiàn)是在/var/lib/cattle/bin/rancher-dns,比較有意思的是所有容器的DNS服務(wù)器都指向了169.254.169.250,然后又通過(guò)路由轉(zhuǎn)發(fā),實(shí)際是轉(zhuǎn)給了此容器對(duì)應(yīng)的rancher/agent-instance:v0.4.1容器中的DNS服務(wù)器。

      nameserver 169.254.169.250
      
      169.254.169.250 dev eth0  scope link  src 10.42.84.2
      

      至于為什么這么蹩腳的實(shí)現(xiàn),目前能想到的合理解釋就是為了實(shí)現(xiàn)只有l(wèi)ink的服務(wù)才能解析到域名。例如上圖中web容器link了memcached容器,這是在web容器中可以解析到memcached域名,而其他容器無(wú)法解析(雖然ip還是能夠ping的通)。

      Rancher的負(fù)載均衡是通過(guò)HAProxy實(shí)現(xiàn)的,也比較簡(jiǎn)單,可以在界面上直接創(chuàng)建一個(gè)負(fù)載均衡。而且負(fù)載均衡可以動(dòng)態(tài)修改,容器創(chuàng)建也可以自動(dòng)綁定到負(fù)載均衡器。這樣就可以實(shí)現(xiàn)雙向互動(dòng),比較方便。

      附錄

      Mysql表結(jié)構(gòu)定義

      +-----------------------------------------------+
      | Tables_in_cattle                              |
      +-----------------------------------------------+
      | DATABASECHANGELOG                             |
      | DATABASECHANGELOGLOCK                         |
      | account                                       |
      | agent                                         |
      | agent_group                                   |
      | auth_token                                    |
      | certificate                                   |
      | cluster_host_map                              |
      | config_item                                   |
      | config_item_status                            |
      | container_event                               |
      | credential                                    |
      | credential_instance_map                       |
      | data                                          |
      | environment                                   |
      | external_handler                              |
      | external_handler_external_handler_process_map |
      | external_handler_process                      |
      | generic_object                                |
      | global_load_balancer                          |
      | healthcheck_instance                          |
      | healthcheck_instance_host_map                 |
      | host                                          |
      | host_ip_address_map                           |
      | host_label_map                                |
      | host_vnet_map                                 |
      | image                                         |
      | image_storage_pool_map                        |
      | instance                                      |
      | instance_host_map                             |
      | instance_label_map                            |
      | instance_link                                 |
      | ip_address                                    |
      | ip_address_nic_map                            |
      | ip_association                                |
      | ip_pool                                       |
      | label                                         |
      | load_balancer                                 |
      | load_balancer_certificate_map                 |
      | load_balancer_config                          |
      | load_balancer_config_listener_map             |
      | load_balancer_host_map                        |
      | load_balancer_listener                        |
      | load_balancer_target                          |
      | mount                                         |
      | network                                       |
      | network_service                               |
      | network_service_provider                      |
      | network_service_provider_instance_map         |
      | nic                                           |
      | offering                                      |
      | physical_host                                 |
      | port                                          |
      | process_execution                             |
      | process_instance                              |
      | project_member                                |
      | resource_pool                                 |
      | service                                       |
      | service_consume_map                           |
      | service_event                                 |
      | service_expose_map                            |
      | setting                                       |
      | snapshot                                      |
      | snapshot_storage_pool_map                     |
      | storage_pool                                  |
      | storage_pool_host_map                         |
      | subnet                                        |
      | subnet_vnet_map                               |
      | task                                          |
      | task_instance                                 |
      | user_preference                               |
      | vnet                                          |
      | volume                                        |
      | volume_storage_pool_map                       |
      | zone                                          |
      +-----------------------------------------------+
      

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多