1 回答

TA貢獻(xiàn)2011條經(jīng)驗(yàn) 獲得超2個(gè)贊
使用Rancher來(lái)運(yùn)行Kubernetes有很多優(yōu)勢(shì)。大多數(shù)情況下能使用戶和IT團(tuán)隊(duì)部署和管理工作更加方便。Rancher自動(dòng)在Kubernetes后端實(shí)現(xiàn)etcd 的HA,并且將所需要的服務(wù)部署到此環(huán)境下的任何主機(jī)中。在設(shè)置訪問(wèn)控制,可以輕易連接到現(xiàn)有的LDAP和AD基礎(chǔ)構(gòu)架。Rancher還可以自動(dòng)實(shí)現(xiàn)容器聯(lián)網(wǎng)以及為Kubernetes提供負(fù)載均衡服務(wù)。通過(guò)使用Rancher,你將會(huì)在幾分鐘內(nèi)有擁有Kubernetes的HA實(shí)現(xiàn)。
命名空間
現(xiàn)在我們的集群已經(jīng)運(yùn)行了,讓我們進(jìn)入并查看一些基本的Kubernetes資源吧。你可以訪問(wèn)Kubernetes集群也可以直接通過(guò)kubectl CLI訪問(wèn),或者通過(guò)Rancher UI 訪問(wèn)。Rancher的訪問(wèn)管理圖層控制可以訪問(wèn)集群,所以你需要在訪問(wèn)CLI前從Rancher UI那里生成API密匙。
我們來(lái)看下第一個(gè)Kubernetes資源命名空間,在給定的命名空間中,所有資源名稱必須有唯一性。此外,標(biāo)簽是用來(lái)連接劃定到單個(gè)命名空間的資源。這就是為什么同一個(gè)Kubernetes集群上可以用命名空間來(lái)隔離環(huán)境。例如,你想為應(yīng)用程序創(chuàng)建Alpha, Beta和生產(chǎn)環(huán)境,以便可以測(cè)試最新的更改且不會(huì)影響到真正的用戶。最后創(chuàng)建命名空間,復(fù)制下面的文本到namespace.yaml文件,并且運(yùn)行 kubectl -f namespace.yaml 命令,來(lái)創(chuàng)建一個(gè)beta命名空間。
kind: Namespace
apiVersion: v1
metadata:
name: beta
labels:
name: beta
當(dāng)然你還可以使用頂部的命名空間菜單欄從Rancher UI上創(chuàng)建、查看和選擇命名空間。
你可以使用下面的命令,用kubectl來(lái)為CLI交互設(shè)置命名空間:
$ kubectl config set-context Kubernetes --namespace=beta.
為了驗(yàn)證目前context是否已經(jīng)被設(shè)置好,你可以使用config view命令,驗(yàn)證一下輸出的命名空間是否滿足你的期望。
$ kubectl config view | grep namespace command namespace: beta
Pods
現(xiàn)在我們已經(jīng)定義好了命名空間,接下來(lái)開始創(chuàng)建資源。首先我們要看的資源是Pod。一組一個(gè)或者多個(gè)容器的Kubernetes稱為pod,容器在pod 里按組來(lái)部署、啟動(dòng)、停止、和復(fù)制。在給定的每個(gè)主機(jī)種類里,只能有一個(gè)Pod,所有pod里的容器只能在同一個(gè)主機(jī)上運(yùn)行,pods可以共享網(wǎng)絡(luò)命名空間,通過(guò)本地主機(jī)域來(lái)連接。Pods也是基本的擴(kuò)展單元,不能跨越主機(jī),因此理想狀況是使它們盡可能接近單個(gè)工作負(fù)載。這將消除pod在擴(kuò)展或縮小時(shí)產(chǎn)生的副作用,以及確保我們創(chuàng)建pods不太耗資源而影響到主機(jī)。
我們來(lái)給名為mywebservice的pod定義,在規(guī)范命名web-1-10中它有一個(gè)容器并使用nginx容器鏡像,然后把端口為80下的文本添加至pod.yaml文檔中。
apiVersion: v1
kind: Pod
metadata:
name: mywebservice
spec:
containers:
- name: web-1-10
image: nginx:1.10
ports:
- containerPort: 80
使用kubetl create命令創(chuàng)建pod,如果您使用set-context command設(shè)置了您的命名空間,pods將會(huì)在指定命名空間中被創(chuàng)立。在通過(guò)運(yùn)行pods命令去驗(yàn)證pod狀態(tài)。完成以后,我們可以通過(guò)運(yùn)行kubetl delete命令刪除pod。
$ kubectl create -f ./pod.yaml
pod "mywebservice" created
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
mywebservice 1/1 Running 0 37s
$ kubectl delete -f pod.yaml
pod "mywebservice" deleted
在Rancher UI 中查看pod,通過(guò)頂端的菜單欄選擇 Kubernetes > Pods 。
- 1 回答
- 0 關(guān)注
- 861 瀏覽
添加回答
舉報(bào)