1 回答

TA貢獻1934條經驗 獲得超2個贊
使用Rancher來運行Kubernetes有很多優勢。大多數情況下能使用戶和IT團隊部署和管理工作更加方便。Rancher自動在Kubernetes后端實現etcd 的HA,并且將所需要的服務部署到此環境下的任何主機中。在設置訪問控制,可以輕易連接到現有的LDAP和AD基礎構架。Rancher還可以自動實現容器聯網以及為Kubernetes提供負載均衡服務。通過使用Rancher,你將會在幾分鐘內有擁有Kubernetes的HA實現。
命名空間
現在我們的集群已經運行了,讓我們進入并查看一些基本的Kubernetes資源吧。你可以訪問Kubernetes集群也可以直接通過kubectl CLI訪問,或者通過Rancher UI 訪問。Rancher的訪問管理圖層控制可以訪問集群,所以你需要在訪問CLI前從Rancher UI那里生成API密匙。
我們來看下第一個Kubernetes資源命名空間,在給定的命名空間中,所有資源名稱必須有唯一性。此外,標簽是用來連接劃定到單個命名空間的資源。這就是為什么同一個Kubernetes集群上可以用命名空間來隔離環境。例如,你想為應用程序創建Alpha, Beta和生產環境,以便可以測試最新的更改且不會影響到真正的用戶。最后創建命名空間,復制下面的文本到namespace.yaml文件,并且運行 kubectl -f namespace.yaml 命令,來創建一個beta命名空間。
kind: Namespace
apiVersion: v1
metadata:
name: beta
labels:
name: beta
當然你還可以使用頂部的命名空間菜單欄從Rancher UI上創建、查看和選擇命名空間。
你可以使用下面的命令,用kubectl來為CLI交互設置命名空間:
$ kubectl config set-context Kubernetes --namespace=beta.
為了驗證目前context是否已經被設置好,你可以使用config view命令,驗證一下輸出的命名空間是否滿足你的期望。
$ kubectl config view | grep namespace command namespace: beta
Pods
現在我們已經定義好了命名空間,接下來開始創建資源。首先我們要看的資源是Pod。一組一個或者多個容器的Kubernetes稱為pod,容器在pod 里按組來部署、啟動、停止、和復制。在給定的每個主機種類里,只能有一個Pod,所有pod里的容器只能在同一個主機上運行,pods可以共享網絡命名空間,通過本地主機域來連接。Pods也是基本的擴展單元,不能跨越主機,因此理想狀況是使它們盡可能接近單個工作負載。這將消除pod在擴展或縮小時產生的副作用,以及確保我們創建pods不太耗資源而影響到主機。
我們來給名為mywebservice的pod定義,在規范命名web-1-10中它有一個容器并使用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命令創建pod,如果您使用set-context command設置了您的命名空間,pods將會在指定命名空間中被創立。在通過運行pods命令去驗證pod狀態。完成以后,我們可以通過運行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,通過頂端的菜單欄選擇 Kubernetes > Pods 。
- 1 回答
- 0 關注
- 1135 瀏覽
添加回答
舉報