千家信息网

kubernetes创建资源的两种方式

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,Kubernetes概述Kubernetes是Google开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。在生产环境中部署一个应用程序时,通常要部署该应用的多个实例以便对应用请
千家信息网最后更新 2026年10月31日kubernetes创建资源的两种方式

Kubernetes概述

Kubernetes是Google开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。在生产环境中部署一个应用程序时,通常要部署该应用的多个实例以便对应用请求进行负载均衡。

在Kubernetes中,我们可以创建多个容器,每个容器里面运行一个应用实例,然后通过内置的负载均衡策略,实现对这一组应用实例的管理、发现、访问,而这些细节都不需要运维人员去进行复杂的手工配置和处理

K8S 的资源有 Pod、Service、Volume、Namespace、ReplicaSet、Deployment、StatefulSet、DaemonSet、Job等等

基于配置文件的方式:

  1. 配置文件描述了 What,即应用最终要达到的状态。
  2. 配置文件提供了创建资源的模板,能够重复部署。
  3. 可以像管理代码一样管理部署。
  4. 适合正式的、跨环境的、规模化部署。
  5. 这种方式要求熟悉配置文件的语法,有一定难度。

一,用命令行的方式创建资源

主机IP地址
master192.168.1.21
node01192.168.1.22
node02192.168.1.23

仅接受json格式

配置清单(yml、yaml)

[root@master ~]# cd /etc/kubernetes/manifests///k8s的yml、yaml文件

1.node01和node02下载nginx镜像

docker pull nginx//下载nginx镜像

2.master创建Pod控制器(test-web),deployment

[root@master ~]# kubectl run test-web --image=nginx --replicas=5//创建Pod控制器,deployment

3.查看控制器情况

(1)

[root@master ~]# kubectl get deployments.//查看控制器情况

[root@master ~]# kubectl get pod --all-namespaces -o wide//显示pod的节点信息

(2)

[root@master ~]# kubectl get namespaces //查看k8s名称空间

[root@master ~]# kubectl describe deployments. test-web//查看资源详细信息

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

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

3.删除test-web控制器

[root@master ~]# kubectl delete deployments. test-web 

4.master创建Pod控制器(web),deployment

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

查看一下pod信息

[root@master ~]# kubectl get pod -o wide//查看一下pod的节点信息

[root@master ~]# kubectl describe deployments. web //查看资源详细信息

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

本机测试访问nginx

[root@master ~]# curl 10.244.1.7

5.创建service资源类型

[root@master ~]# kubectl expose deployment web --name=web-xgp --port=80 --type=NodePort//创建service资源类型,这里我们设置了映射端口

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

映射端口范围:30000-32767

查看service信息

[root@master ~]# kubectl get svc

浏览器测试访问http://192.168.1.21:30493/

二、服务的扩容与缩容

1. 查看控制器信息

[root@master ~]# kubectl get deployments. -o wide

2.扩容

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

查看一下

[root@master ~]# kubectl get deployments. -o wide

3.缩容

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

查看一下

[root@master ~]# kubectl get deployments. -o wide

3.通过修改web的yaml文件进行扩容缩容

备份web的yaml文件

[root@master ~]# kubectl get deployments. -o yaml > web.yaml

使用edit修改web的yaml文件

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

查看一下

[root@master ~]# kubectl get deployments. -o wide

三、服务的升级与回滚

node01和node02下载1.15版本的nginx

[root@master ~]# docker pull nginx:1.15

1.master设置服务升级

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

查看一下

2.master设置服务回滚

(1)修改配置文件回滚

使用edit修改web的yaml文件

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

查看一下

[root@master ~]# kubectl get deployments. -o wide

(2)命令回滚

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

注意:只能回滚到上一次操作的状态

四、小实验

实验环境

主机IP地址服务
master192.168.1.21registry+Deployment
node01192.168.1.22
node02192.168.1.23

1.master 基于httpd制作自己的镜像,需要3个版本,v1,v2,v3.并且对应的版本镜像,访问的主目录内容不一样

(1)master下载httpd镜像

[root@master ~]# docker pull httpd

(2)编写Dockerfile

[root@master xgp]# vim DockerfileFROM httpdCOPY index.html /usr/local/apache2/htdocs/index.html

(3)创建测试网页v1

[root@master xgp]#echo "

xgp | test-web | httpd:v1

" > index.html

(4)基于Dockerfile创建镜像 web1

[root@master xgp]# docker build -t web1 .

(5)创建测试网页v2

[root@master xgp]#echo "

xgp | test-web | httpd:v1

" > index.html

(6)基于Dockerfile创建镜像 web2

[root@master xgp]# docker build -t web2 .

(7)创建测试网页v3

[root@master xgp]# echo "

xgp | test-web | httpd:v3

" > index.html

(8)基于Dockerfile创建镜像 web3

[root@master xgp]# docker build -t web3 .

2.master部署私有仓库

(1)master下载registry镜像

[root@master ~]# docker pull registry

(2)启动registry

[root@master xgp]# docker run -itd --name registry -p 5000:5000 --restart=always registry:latest 

(3)修改docker配置文件,加入私有仓库(三台)

[root@master xgp]# vim /usr/lib/systemd/system/docker.serviceExecStart=/usr/bin/dockerd --insecure-registry 192.168.1.21:5000

(4)重启docker(三台)

[root@master xgp]# systemctl daemon-reload [root@master xgp]# systemctl restart docker

3.上传之前创建的三个web镜像到私有仓库

(1)修改镜像标签

[root@master xgp]# docker tag web1:latest 192.168.1.21:5000/web1:latest[root@master xgp]# docker tag web2:latest 192.168.1.21:5000/web2:latest[root@master xgp]# docker tag web3:latest 192.168.1.21:5000/web3:latest

(2)将三个web镜像上传到私有仓库

[root@master xgp]# docker push  192.168.1.21:5000/web1:latest [root@master xgp]# docker push  192.168.1.21:5000/web2:latest[root@master xgp]# docker push  192.168.1.21:5000/web3:latest 

4.部署一个Deployment资源对象,要求镜像使用上述私有镜像v1版本。6个副本Pod。

[root@master xgp]# kubectl run www1 --image=192.168.1.21:5000/web1:latest --replicas=6

查看一下

[root@master xgp]# kubectl get pod

5.将上述Deployment暴露一个service资源对象,使外网能否访问服务。

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

查看一下

[root@master xgp]# kubectl get svc

浏览器访问一下

6.将上述Deployment进行扩容和缩容操作,扩容为8个副本Pod,然后缩容为4个副本Pod。

(1)扩容

[root@master xgp]# kubectl scale deployment www1 --replicas=8

查看一下

[root@master xgp]# kubectl get deployments. -o wide

(2)缩容

修改k8s配置文件

备份web的yaml文件

[root@master ~]# kubectl get deployments. -o yaml > www1.yaml

使用edit修改web的yaml文件

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

查看一下

[root@master xgp]# kubectl get deployments. -o wide

7.将上述Deployment进行升级与回滚操作,将v1版本,升级到v2版本。

(1)升级版本为web2

[root@master ~]# kubectl set image deployment www1 www1=192.168.1.21:5000/web2

本机测试访问

[root@master ~]# curl 127.0.0.1:30996

xgp | test-web | httpd:v2

浏览器测试访问

(2)回滚版本到web1

<1>修改配置文件回滚

使用edit修改web的yaml文件

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

查看一下

[root@master ~]# kubectl get deployments. -o wide

访问一下

<2>命令回滚

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

注意:只能回滚到上一次操作的状态

访问一下

____完毕____

资源 文件 镜像 控制器 控制 配置 版本 信息 应用 服务 测试 升级 私有 仓库 名称 容器 对象 空间 类型 管理 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 华服互联网科技靠谱吗 互联网科技英文 深圳齐家互联网科技 唐信互联网科技 大连 互联网科技公司介绍 顺网科技2021年互联网排名 互联网公司会议桌创意科技软装饰 汉立互联网科技有限公司联系电话 中盈科技互联网信息有限公司 现代互联网科技股 南山科技园互联网公司有哪些 互联网科技革命什么开始 华夏互联网科技业 互联网科技与大数据专业 互联网科技的全部知识 工业互联网等科技实现智能化赋能 卓翼科技产业互联网合作 上海同邻互联网科技有限公司规模 珠海东科互联网科技有限公司 科技互联网公司两年变化 互联网科技垄断 互联网络科技有限公司 互联网 科技创新 火传媒上海互联网科技 一五八零互联网科技 互联网科技公司名称 互联网公司会议桌创意科技软装饰 互联网软件和科技 南通创西澳互联网科技有限公司 广州全民伙伴互联网科技有限公司
0