创建资源的两种方式


创建资源的两种方式


用命令行的方式创建:

//创建Pod控制器,deployments

[root@master ~]# kubectl run web --image=nginx --replicas=5

点击并拖拽以移动

//查看控制器情况

[root@master ~]# kubectl get  deployments.

点击并拖拽以移动

//查看资源详细信息

[root@master ~]# kubectl describe deployments. web

点击并拖拽以移动

PS:查看某种资源对象,没有指名称空间,默认是在default名称空间,可以加上-n选项,查看指定名称空间

[root@master ~]# kubectl get  pod  -n=kube-system

点击并拖拽以移动

注意:直接运行创建的Deployment资源对象,是经常使用的一个控制器类型,除了deployment,还有rc,rs等Pod控制器,Deployment是一个高级的Pod控制器

//创建Service资源类型

[root@master ~]# kubectl expose deployment web --name=web-svc --port=80 --type=NodePort

点击并拖拽以移动

PS:如果想要外网能够访问服务,可以暴露deployment资源,得到service资源,但svc资源的类型必须为NodePoet

映射端口范围:30000-32767

服务的扩容与缩容:

[root@master ~]# kubectl scale deployment web --replicas=8

点击并拖拽以移动

//通过修改yuml文件进行扩容与缩容

[root@master ~]# kubectl edit deployments. web

点击并拖拽以移动

服务的升级与回滚:

[root@master ~]# kubectl  set  image deployment  web  web=nginx:1.15

点击并拖拽以移动

//通过修改配置文件进行升级

[root@master ~]# kubectl  edit  deployments. web

点击并拖拽以移动

//回滚

[root@master ~]# kubectl  rollout  undo deployment web

点击并拖拽以移动

配置清单(yml、yaml):


常见yaml文件写法,以及字段的作用:

五个一级字段:

apiVersion:

api版本信息

kind:

资源对象的类别

metadata:

元数据。名称字段必须写

spec:

用户期望的状态

status:

资源现在处于什么样的状态

Deployment

[root@master ~]# vim web.yaml
kind: Deployment
apiVersion: extensions/v1beta1
metadata:
  name: web
spec:
  replicas: 2
  template:
    metadata:
      labels:
        app:  web_server
    spec:
      containers:
      - name: nginx
        image:  nginx
[root@master ~]# kubectl  apply -f  web.yaml

点击并拖拽以移动

service

kind: Service
apiVersion: v1
metadata:
  name: web-svc
spec:
  selector:   //标签选择器,和Deployment里的标签要一样
    app:  web_server
  ports:
  - protocol: TCP
    port: 80
    targetPort: 80
[root@master ~]# kubectl apply -f  web-svc.yml

点击并拖拽以移动

使用相同的标签和标签选择器,使两个资源对象相互关联

PS:(本质的意义:提供一个统一的接口)

创建的Service资源对象,默认的type为ClusterIP,意味着集群内任何节点都可以访问,它的作用是为后端真正提供服务的Pod提供一个统一的访问接口,如果想要外网访问服务,应该把type改为NodePort

kind: Service
apiVersion: v1
metadata:
  name: web-svc
spec:
  type: NodePort  //指定类型,让外网来访问
  selector:
    app:  web_server
  ports:
  - protocol: TCP
    port: 80
    targetPort: 80
    nodePort: 30033   //指定集群映射端口,范围是30000-32767

点击并拖拽以移动


文章作者:Echo
版权声明:本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Echo !
  目录