31 管理應用 部署持續執行的應用
阿新 • • 發佈:2018-12-02
在前面的章節裡,我們瞭解瞭如何用 kubectl run 快速部署一個簡單的複製的應用以及如何用pods(configuring-containers.md)配置並生成單次執行的容器。本文,我們將使用基於配置的方法來部署一個持續執行的複製的應用。
apiVersion
:
v1
kind
:
ReplicationController
metadata
:
name
:
my
-
nginx
spec
:
replicas
:
2
template
:
metadata
:
labels
:
app
:
nginx
spec
:
containers
:
-
name
:
nginx
image
:
nginx
ports
:
-
containerPort
:
80
和指定一個單獨的Pod相比,不同的是設定了這裡的kind域為ReplicationController,設定了需要的副本(replicas)數量以及把Pod的定義放到了template域下面。pods的名字不需要顯示指定,因為它們是由 replication controller 的名字生成的。要檢視支援的域列表,可以看replication controller API object。 和建立pods一樣,也可以用 create 命令來建立這個replication controller:
$ kubectl create
-
f
./
nginx
-
rc
.
yaml
replicationcontrollers
/
my
-
nginx
replication controller 會替換刪除的或者因不明原因終止的(比如節點失敗)pods,這和直接建立的pods的情況是不一樣。基於這樣的考量,對於一個需要持續執行的應用,即便你的應用只需要一個單獨的pod,我們也推薦使用 replication controller 。對於單獨的pod,在配置檔案裡可以省略 replicas 這個域,因為不設定的時候預設就只有一個副本。