028-86922220

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

k8s核心资源对象&NameSpace(指定版本回滚)-创新互联

k8s核心的资源对象:

* PVC(PersistentVolumeClaim):应用pv持久化空间的一个申请,声明。

* Ingress-nginx:用于解决集群的负载情况,为集群提供一个统一的路口。安全,端口容器管理。

NameSpace(命名空间)

NameSpace(命名空间)是kubernetes系统中的另一个重要的概念,通过将系统内部的对象“分配”到不同的namespace中,形成逻辑上分组的不同项目,小组或用户组,便于不同的分组在共享使用整个集群的资源的同时还能被分别管理。
kubernetes集群在启动后,会创建一个名为“default”的NameSpace,如果不特别指明NameSpace,则用户创建的pod,RC, Service都被系统创建到“default”的NameSpace中。
kubernetes中的NameSpace主要用于空间,名称上的隔离,和docker中的NameSpace的概念完全不一样。

[root@master ~]# kubectl  get ns   //查看命名空间
NAME              STATUS   AGE
default           Active   27d        //默认命名空间为default
kube-node-lease   Active   27d
kube-public       Active   27d
kube-system       Active   27d

创建命名空间
##有两种创建方法:命令行和编写yaml文件
//方法一:命令行创建

[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(指定版本回滚)

命名空间的应用
1,指定一个pod(httpd)运行在指定的名称空间中:

[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:查看任何命名空间下的资源对象时,都需要指定对应的命名空间,否则默认查看的时default命名空间下的pod。

namespace应用之指定版本回滚
在上一章的资源的创建方式博客中我们用到了版本的升级和回滚操作,但是只能在前后两个版本之间,这是一个极大的缺点,而接下来的操作是可以指定某一个版本来进行回滚。

//在指定的命名空间下创建一个deployment资源对象,镜像用私有仓库中的镜像,进行更新和回滚操作,且验证网页。

1)搭建registry私有仓库,且上传自定义镜像,过程可以参考该博文部署私有仓库

2)创建资源对象:
[root@master ~]# vim namespace-pod1.yaml

apiVersion: v1
kind: Namespace                 #创建命名空间
metadata:
  name: test-namespace
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: nginx-deploy1
  namespace: test-namespace
spec:
  template:
    metadata:
      labels:
        name: nginx-web            #创建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             #创建service关联deployment
  selector:
    name: nginx-web
  ports:
  - name: nginx
    port: 80
    targetPort: 80
    nodePort: 30001
//运行该pod
[root@master ~]# kubectl apply -f namespace-pod1.yaml --record 
namespace/test-namespace configured
deployment.extensions/nginx-deploy1 configured
service/nginx-svc configured
//查看deployment版本信息:
[root@master ~]# kubectl  get deployments. -o wide -n test-namespace

k8s核心资源对象& NameSpace(指定版本回滚)
//访问web界面:
k8s核心资源对象& NameSpace(指定版本回滚)
k8s核心资源对象& NameSpace(指定版本回滚)

3)进行更新操作,将镜像版本进行更新至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
//查看当前镜像版本:
[root@master ~]# kubectl  get deployments. -o wide -n test-namespace

k8s核心资源对象& NameSpace(指定版本回滚)
//镜像更新成功,访问网页:
k8s核心资源对象& NameSpace(指定版本回滚)

4)进行回滚操作,回滚到指定版本1:

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

k8s核心资源对象& NameSpace(指定版本回滚)
因为我只更新了一次,所以只有两个版本,当然在生产环境中肯定有非常多的一个版本,所以我们必须要能够指定对应的版本。

//进行回滚:

[root@master ~]# kubectl  rollout undo deployment -n test-namespace  nginx-deploy1 --to-revision=1
deployment.extensions/nginx-deploy1 rolled back

//再次查看历史版本信息:
k8s核心资源对象& NameSpace(指定版本回滚)
可以看到进行了回滚操作后,之前的版本1已经变成了最新版本3,版本是以顺序的方式进行排列。

———————— 本文至此结束,感谢阅读 ————————

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


网页题目:k8s核心资源对象&NameSpace(指定版本回滚)-创新互联
分享URL:http://www.tsicrk.com/article/dgiioi.html

其他资讯

让你的专属顾问为你服务

0.6244s