kubernetes常用的資源

創建pod資源

pod是最小資源單位.
任何的一個k8s資源都可以由yml清單文件來定義

k8s yaml的主要組成

apiVersion: v1  api版本
kind: pod   資源類型
metadata:   屬性
spec:       詳細

master節點編寫pod.yaml文檔
vi k8s_pod.yaml

apiVersion: v1
kind: Pod
metadata:
  name: nginx
  labels:
    app: web
spec:
  containers:
    - name: nginx
      image: 10.0.0.11:5000/nginx:1.13
      ports:
        - containerPort: 80

創建pod資源並查看pod資源

kubectl create -f k8s_pod.yml
kubectl get pod 
kubectl describe pod nginx

node節點:根據鏡像的pod-infrastructure:latest image的具體地址進行填寫進行填寫

vim /etc/kubernetes/kubelet
KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=10.0.0.11:5000/pod-infrastructure:latest"
systemctl restart kubelet.service

查看是否啓動成功

kubectl get pod -o  wide
 kubectl describe pod nginx

pod和容器的關係:
爲什麼創建一個pod資源,需要至少啓動兩個容器?
pod基礎容器 實現k8s的高級功能+
nginx容器 實現業務功能

pod資源中,多個業務容器的端口不能衝突

pod資源:至少由兩個容器組成,pod基礎容器和業務容器組成(最多1+4)

只要創建一個pod資源,都會啓動一個pod基礎容器+pod資源中的業務容器

curl -I 172.18.78.2 訪問pod的ip地址,pod裏面的nginx可以被訪問,nginx容器和pod-infrastructure
172.18.78.2 究竟是哪一個容器的ip地址?
172.18.78.2是pod基礎容器的ip
nginx容器和pod基礎容器共用ip地址

ReplicationController資源
rc:保證指定數量的pod始終存活,rc通過標籤選擇器來關聯pod
啓動5個相同的pod,pod 5個副本

apiVersion: v1
kind: ReplicationController
metadata:
  name: nginx
spec:
  replicas: 5  #副本5
  selector:
    app: myweb
  template:  #模板
    metadata:
      labels:
        app: myweb
    spec:
      containers:
      - name: myweb
        image: 10.0.0.11:5000/nginx:1.13
        ports:
        - containerPort: 80

啓動一個rc 並查看rc信息

 kubectl   create -f  k8s_rc.yaml
 kubectl  get  rc

刪除一個 又會創建一個新的

kubectl   delete  pod  nginx-9kstr

每一個pod名字,必須唯一
k8s 不斷的檢查不可用的節點,驅逐pod

停止node節點的服務

 systemctl stop  kubelet.service

刪除節點

kubectl  delete node   10.0.0.12

會在另外的節點上新建 一直保持rc始終運行

[root@k8s-master rc]# kubectl   get pod -o wide
NAME          READY     STATUS    RESTARTS   AGE       IP            NODE
nginx-1zgwx   1/1       Running   0          32s       172.18.10.8   10.0.0.13
nginx-kt27z   1/1       Running   0          8m        172.18.10.5   10.0.0.13
nginx-qq1sc   1/1       Running   0          32s       172.18.10.7   10.0.0.13
nginx-st72b   1/1       Running   0          8m        172.18.10.4   10.0.0.13
nginx-tvf09   1/1       Running   0          32s       172.18.10.6   10.0.0.13
test          2/2       Running   14         7h        172.18.10.2   10.0.0.13

查看標籤pod的

 kubectl   get pod -o wide   --show-labels

查看節點使用那些標籤
kubectl get rc -o wide

在這裏插入代碼片

修改pod 標籤爲myweb 會出現少了一個,刪除了最年輕的

kubectl   edit   pod  test

宏觀世界,pod都是同一秒創建
微觀世界,pod創建相隔幾毫米

kubectl   create  -f   xxx.yaml   創建資源
kubectl   get  pod|rc             查看某一個資源列表
kubectl  describe  pod  nginx      查看某一個具體資源的詳細信息
kubectl  delete   pod  nginx        刪除某一個具體資源
 或者kubectl delete  -f  xxx.yaml
kubectl  edit  pod   nginx          編輯某一個資源的配置文件
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章