中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

k8s核心資源對象&NameSpace(指定版本回滾)

k8s核心的資源對象:

  • Pod:是運(yùn)行以及調(diào)度的原子單位,也就是k8s中最小的資源單位,同一個pod可以同時運(yùn)行多個container,多個container之間共享:(UTS(主機(jī)名和域名),IPC(消息隊(duì)列和共享內(nèi)存),NET(網(wǎng)絡(luò)棧,端口等),namespace(名稱空間)),但USR(用戶和組),MNT(掛載點(diǎn)),PID(進(jìn)行編號)是相互隔離的。
    pod有兩種類型的pod:一類是由控制器控制的pod,一類是自主式pod(不受控制器管理,自己管理自己)

    成都創(chuàng)新互聯(lián)公司長期為成百上千家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為阜陽企業(yè)提供專業(yè)的成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、外貿(mào)營銷網(wǎng)站建設(shè),阜陽網(wǎng)站改版等技術(shù)服務(wù)。擁有10年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。

  • Deployment:最常見的pod控制器,它支持應(yīng)用的擴(kuò)縮容。滾動更新操作。(缺點(diǎn):無法回滾到指定的版本)

  • Service:為有生命周期的pod對象提供了一個固定的統(tǒng)一的訪問接口,用于服務(wù)發(fā)現(xiàn)和服務(wù)訪問。
    以下資源對象會在后續(xù)的博客中進(jìn)行應(yīng)用,以下只做了解
  • RC(Replcation Controller):最早一代的pod控制器,在將來的版本中會將其刪除。
  • RS (Replication Set):新一代的pod控制器,用來替換RC,功能與RC基本相同,唯一的不同之處在于支持的標(biāo)簽選擇器不同。RC只支持等值的選擇器,RS還額外支持基于集合的選擇器。

  • DaemonSet:用來確保每個節(jié)點(diǎn)都運(yùn)行某個pod的一個副本。(每個節(jié)點(diǎn)只運(yùn)行一個副本,不支持replicas字段)

  • Job:用來管理運(yùn)行完成之后即可終止的應(yīng)用,例如批量處理作業(yè)任務(wù)(可以理解為依次形的pod,只要任務(wù)執(zhí)行完成后,就立即刪除pod)

  • PV(PersistentVolume):持久卷,統(tǒng)一的數(shù)據(jù)持久化目錄,方便管理

* PVC(PersistentVolumeClaim):應(yīng)用pv持久化空間的一個申請,聲明。

  • Stroage Class:(存儲類)根本作用:根據(jù)pv定義的值自動創(chuàng)建pv。

  • StatefulSet:又稱PetSet,也是一種pod控制器。
    特點(diǎn):pod名稱不變,每個副本啟停有順序。用于數(shù)據(jù)持久化(每個pod的數(shù)據(jù)都不一樣),自動創(chuàng)建pv,pvc。

  • Secret和ConfigMap:用于保存輕量的敏感信息。比如數(shù)據(jù)庫的用戶名和密碼或者認(rèn)證密鑰等。

* Ingress-nginx:用于解決集群的負(fù)載情況,為集群提供一個統(tǒng)一的路口。安全,端口容器管理。

NameSpace(命名空間)

NameSpace(命名空間)是kubernetes系統(tǒng)中的另一個重要的概念,通過將系統(tǒng)內(nèi)部的對象“分配”到不同的namespace中,形成邏輯上分組的不同項(xiàng)目,小組或用戶組,便于不同的分組在共享使用整個集群的資源的同時還能被分別管理。
kubernetes集群在啟動后,會創(chuàng)建一個名為“default”的NameSpace,如果不特別指明NameSpace,則用戶創(chuàng)建的pod,RC, Service都被系統(tǒng)創(chuàng)建到“default”的NameSpace中。
kubernetes中的NameSpace主要用于空間,名稱上的隔離,和docker中的NameSpace的概念完全不一樣。

[root@master ~]# kubectl  get ns   //查看命名空間
NAME              STATUS   AGE
default           Active   27d        //默認(rèn)命名空間為default
kube-node-lease   Active   27d
kube-public       Active   27d
kube-system       Active   27d

創(chuàng)建命名空間
##有兩種創(chuàng)建方法:命令行和編寫yaml文件
//方法一:命令行創(chuàng)建

[root@master ~]# kubectl  create  ns k8s1
namespace/k8s1 created

k8s核心資源對象& NameSpace(指定版本回滾)

//方法二:編寫yaml文件

[root@master ~]# vim k8s2-ns.yaml
apiVersion: v1
kind: Namespace
metadata:
  name: k8s2
[root@master ~]# kubectl apply -f  k8s2-ns.yaml 
namespace/k8s2 created

k8s核心資源對象& NameSpace(指定版本回滾)

命名空間的應(yīng)用
1,指定一個pod(httpd)運(yùn)行在指定的名稱空間中:

[root@master ~]# vim test-pod1.yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: test-pod1
  namespace: k8s2            //在該字段下指定命名空間
spec:
  revisionHistoryLimit: 5        
  replicas: 2
  template:
    metadata:
      labels:
        name: httpd-web
    spec:
      containers:
      - name: httpd
        image: httpd
        ports:
        - containerPort: 80
[root@master ~]# kubectl apply -f  test-pod1.yaml 
deployment.extensions/test-pod1 created
//查看該命名空間下的pod:
[root@master ~]# kubectl  get pod -n k8s2    # -n:指定命名空間
NAME                         READY   STATUS    RESTARTS   AGE
test-pod1-55b448f88c-mhmqc   1/1     Running   0          4m6s
test-pod1-55b448f88c-xqsr7   1/1     Running   0          4m6s

PS:查看任何命名空間下的資源對象時,都需要指定對應(yīng)的命名空間,否則默認(rèn)查看的時default命名空間下的pod。

namespace應(yīng)用之指定版本回滾
在上一章的資源的創(chuàng)建方式博客中我們用到了版本的升級和回滾操作,但是只能在前后兩個版本之間,這是一個極大的缺點(diǎn),而接下來的操作是可以指定某一個版本來進(jìn)行回滾。

//在指定的命名空間下創(chuàng)建一個deployment資源對象,鏡像用私有倉庫中的鏡像,進(jìn)行更新和回滾操作,且驗(yàn)證網(wǎng)頁。

1)搭建registry私有倉庫,且上傳自定義鏡像,過程可以參考該博文部署私有倉庫

2)創(chuàng)建資源對象:
[root@master ~]# vim namespace-pod1.yaml

apiVersion: v1
kind: Namespace                 #創(chuàng)建命名空間
metadata:
  name: test-namespace
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: nginx-deploy1
  namespace: test-namespace
spec:
  template:
    metadata:
      labels:
        name: nginx-web            #創(chuàng)建deployment
    spec:
      containers:
      - name: nginx
        image: 172.16.1.30:5000/nginx:v1
        ports:
        - containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
  name: nginx-svc
  namespace: test-namespace
spec:
  type: NodePort             #創(chuàng)建service關(guān)聯(lián)deployment
  selector:
    name: nginx-web
  ports:
  - name: nginx
    port: 80
    targetPort: 80
    nodePort: 30001
//運(yùn)行該pod
[root@master ~]# kubectl apply -f namespace-pod1.yaml --record 
namespace/test-namespace configured
deployment.extensions/nginx-deploy1 configured
service/nginx-svc configured
  • 參數(shù):--record:記錄版本信息。
//查看deployment版本信息:
[root@master ~]# kubectl  get deployments. -o wide -n test-namespace 

k8s核心資源對象& NameSpace(指定版本回滾)
//訪問web界面:
k8s核心資源對象& NameSpace(指定版本回滾)
k8s核心資源對象& NameSpace(指定版本回滾)

3)進(jìn)行更新操作,將鏡像版本進(jìn)行更新至v2版本:

[root@master ~]# cp namespace-pod1.yaml namespace-pod2.yaml 
[root@master ~]# vim namespace-pod2.yaml 

k8s核心資源對象& NameSpace(指定版本回滾)

[root@master ~]# kubectl apply -f  namespace-pod2.yaml  --record  #記錄版本信息
namespace/test-namespace configured
deployment.extensions/nginx-deploy1 configured
service/nginx-svc configured
//查看當(dāng)前鏡像版本:
[root@master ~]# kubectl  get deployments. -o wide -n test-namespace 

k8s核心資源對象& NameSpace(指定版本回滾)
//鏡像更新成功,訪問網(wǎng)頁:
k8s核心資源對象& NameSpace(指定版本回滾)

4)進(jìn)行回滾操作,回滾到指定版本1:

//回滾之前需要先查看歷史版本信息:
[root@master ~]# kubectl  rollout  history deployment  -n test-namespace 

k8s核心資源對象& NameSpace(指定版本回滾)
因?yàn)槲抑桓铝艘淮?,所以只有兩個版本,當(dāng)然在生產(chǎn)環(huán)境中肯定有非常多的一個版本,所以我們必須要能夠指定對應(yīng)的版本。

//進(jìn)行回滾:

[root@master ~]# kubectl  rollout undo deployment -n test-namespace  nginx-deploy1 --to-revision=1
deployment.extensions/nginx-deploy1 rolled back
  • --to-revision參數(shù)來指定版本,只需要選擇對應(yīng)的版本號即可。
    //查看deployment的版本,是否回滾成功:
    k8s核心資源對象& NameSpace(指定版本回滾)
    版本回滾成功,測試訪問web界面:
    k8s核心資源對象& NameSpace(指定版本回滾)
    可以看到回滾成功,網(wǎng)頁內(nèi)容也進(jìn)行了回滾操作。

//再次查看歷史版本信息:
k8s核心資源對象& NameSpace(指定版本回滾)
可以看到進(jìn)行了回滾操作后,之前的版本1已經(jīng)變成了最新版本3,版本是以順序的方式進(jìn)行排列。

———————— 本文至此結(jié)束,感謝閱讀 ————————

分享題目:k8s核心資源對象&NameSpace(指定版本回滾)
標(biāo)題網(wǎng)址:http://www.rwnh.cn/article24/jiesje.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站面包屑導(dǎo)航、App開發(fā)、微信公眾號品牌網(wǎng)站設(shè)計(jì)移動網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)
比如县| 林西县| 铁力市| 环江| 平南县| 来凤县| 莱芜市| 海林市| 漾濞| 岳普湖县| 和顺县| 博兴县| 萨嘎县| 开阳县| 九龙坡区| 津南区| 邓州市| 武汉市| 湖北省| 香格里拉县| 夏河县| 凤翔县| 仲巴县| 阳城县| 太仓市| 油尖旺区| 星子县| 枣强县| 盐城市| 千阳县| 襄汾县| 河南省| 宜良县| 辉南县| 龙游县| 黑河市| 呼图壁县| 平果县| 陆川县| 漯河市| 田阳县|