一個適當的Kubernetes是由多個實體機器或者虛擬機器,配合正確的網路設定,以便Kubernetes內運行的所有容器都可以在相同的扁平網路環境內互相連通。
[root@cp200 ch2]# kubectl cluster-info
Kubernetes control plane is running at <https://cluster.k8s:6443>
CoreDNS is running at <https://cluster.k8s:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy>
To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
[root@cp200 ch2]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
cp200.k8s Ready control-plane,master 138m v1.23.5
wk201.k8s Ready <none> 137m v1.23.5
wk202.k8s Ready <none> 137m v1.23.5
使用 kubectl descirbe node <node名稱>
查看節點詳細資料,可以不用加節點名稱,這樣就會展示出全部的節點詳細資料
[root@cp200 ch2]# kubectl describe nodes cp200.k8s
...以下省略
以下的指令已經在新版本的 k8s 不能用來建立 ReplicationController
~~kubectl run kubia --image=abowspy/kubia --port=8080 --generator=run/v1~~
PS. --generator 這個參數廢棄了 (這會讓k8s建立一個RC,而不是deployment) PS. kubectl run 只能用來建立 pod PS. 也不能用此指令方式建立 ReplicationController
所以改用以下 yaml檔案,部屬第一個k8s應用
建立一個 kubia.yaml 檔案,內容如下
apiVersion: v1
kind: ReplicationController
metadata:
name: kubia
spec:
template:
metadata:
labels:
run: kubia
spec:
containers:
- name: kubia
image: abowspy/kubia
ports:
- containerPort: 8080
然後再使用以下指令,配合剛剛的 yaml檔案,來建立ReplicationController
[root@cp200 ch2]# kubectl create -f kubia.yaml
replicationcontroller/kubia created
k8s 基本上是不直接處裡單個容器,他使用多個共存容器的概念,這組容器就叫做 pod ,pod 是 k8s 最小的運作的單位。 一個 pod 包含 一群緊密相關的容器,一個 pod 裡面的所有容器一定會運作在同一個工作節點上,以及同一個 linux 命名空間。 每一個 pod 就像是一個獨立的邏輯機器,擁有自己的IP、主機名稱、程序等,運行一個單一應用程式。 應用程式可以是一個單一程序運行在一個容器裡,也可以是一個主要應用程式和附加支援程序(每個程序都運行在自己的容器裡)。