k8s创建资源(3)(负载均衡原理,回滚指定版本,label控制pod的位置)

本文介绍了Kubernetes中Deployment和Service的使用,包括创建Deployment、Service,理解负载均衡原理,如何回滚到指定版本,以及通过label控制Pod的调度位置。此外,还进行了版本升级与回滚的实战操作。
摘要由CSDN通过智能技术生成

Deployment介绍

Deployment是kubernetes 1.2引入的概念,用来解决Pod的编排问题。Deployment可以理解为RC的升级版(RC+Reolicat Set)。特点在于可以随时知道Pod的部署进度,即对Pod的创建、调度、绑定节点、启动容器完整过程的进度展示。

使用场景

创建一个Deployment对象来生成对应的Replica Set并完成Pod副本的创建过程。
检查Deployment的状态来确认部署动作是否完成(Pod副本的数量是否达到预期值)。
更新Deployment以创建新的Pod(例如镜像升级的场景)。
如果当前Deployment不稳定,回退到上一个Deployment版本。
挂起或恢复一个Deployment。

Service介绍

img

Service定义了一个服务的访问入口地址,前端应用通过这个入口地址访问其背后的一组由Pod副本组成的集群实例,Service与其后端的Pod副本集群之间是通过Label Selector来实现“无缝对接”。RC保证Service的Pod副本实例数目保持预期水平。

外部系统访问Service的问题

IP类型 说明
Node IP Node节点的IP地址
Pod IP Pod的IP地址
Cluster IP Service的IP地址

环境介绍

主机 IP地址 服务
master 192.168.1.21 k8s
node01 192.168.1.22 k8s
node02 192.168.1.23 k8s

一,Delpoyment和service的简单使用

1.练习写一个yaml文件,要求使用自己的私有镜像,要求副本数量为三个。

[root@master ~]# vim xgp.yaml
kind: Deployment
apiVersion: extensions/v1beta1
metadata:
  name: xgp-web
spec:
  replicas: 3
  template:
    metadata:
      labels:
        app: xgp-server
    spec:
      containers:
      - name: web
        image: 192.168.1.21:5000/web:v1

(1)执行一下

[root@master ~]# kubectl apply -f xgp.yaml  --recore

(2)查看一下

[root@master ~]# kubectl get pod

image-20200108090638488

(3)访问一下

[root@master ~]# curl 10.244.2.16

image-20200108090817058

(4)更新一下yaml文件,副本加一

[root@master ~]# vim xgp.yaml
kind: Deployment
apiVersion: extensions/v1beta1
metadata:
  name: xgp-web
spec:
  replicas: 4
  template:
    metadata:
      labels:
        app: xgp-server
    spec:
      containers:
      - name: web
        image: 192.168.1.21:5000/web:v1
<1>执行一下
[root@master ~]# kubectl apply -f xgp.yaml --recore
<2>查看一下
[root@master ~]# kubectl get pod

image-20200108091104534

副本数量加一,如果yaml文件的副本为0,则副本数量还是之前的状态,并不会更新。

2.练习写一个service文件

[root@master ~]# vim xgp-svc.yaml
kind: Service
apiVersion: v1
metadata:
  name: xgp-svc
spec:
  selector:
    app: xgp-server
  ports:
    - protocol: TCP
      port: 80
      targetPort: 80

(1)执行一下

[root@master ~]# kubectl apply -f xgp-svc.yaml

(2)查看一下

[root@master ~]# kubectl get svc

image-20200108091909396

(3)访问一下

[root@master ~]# curl 10.107.119.49

image-20200108092011164

3.修改yaml文件

[root@master ~<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值