温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎样发布容器到K8S集群中

发布时间:2021-12-15 19:17:13 来源:亿速云 阅读:182 作者:柒染 栏目:云计算

本篇文章给大家分享的是有关怎样发布容器到K8S集群中,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

前言

今天在 K8S 集群中跑一个容器化应用。

发布容器到 K8S 中

容器来源

使用 nginx 的官方容器镜像。

发布容器的两种方式

镜像有了,我们如何将其提交给 K8S 运行呢,有两种方式:

  1. 命令行方式(不推荐)。

  2. 配置文件方式(推荐)。

这里使用官方推荐的第二种方式,即通过将容器的各种信息写入配置文件提交给 K8S。

定义容器配置文件

创建一个 nginx.yaml 文件

[root@master01 ~]# cat nginx.yaml 
apiVersion: v1
kind: Pod
metadata:
 name: nginx
spec:
  containers:
    - name: nginx
      image: nginx:1.7.9 
      ports: 
        - containerPort: 80
  hostAliases:
  - ip: "10.20.20.20"
    hostnames:
    - "test1.com"
    - "test2.com"

部署容器到 K8S 中

[root@master01 ~]# kubectl apply -f nginx.yaml 
pod/nginx created

查看容器的运行情况

[root@master01 ~]# kubectl get pods -o wide
NAME    READY   STATUS    RESTARTS   AGE   IP               NODE     NOMINATED NODE   READINESS GATES
nginx   1/1     Running   0          93s   192.10.205.195   work01   <none>           <none>

查看容器的具体信息

所有重要操作,都会被记录在kubectl describe 指令返回的 Events 里,用于 DEBUG

[root@master01 ~]# kubectl describe pod nginx
Name:         nginx
Namespace:    default
Priority:     0
Node:         work03/192.168.10.17
IP:           192.10.137.130
.....省略......
Events:
  Type    Reason     Age        From               Message
  ----    ------     ----       ----               -------
  Normal  Scheduled  <unknown>  default-scheduler  Successfully assigned default/nginx to work03
  Normal  Pulled     74s        kubelet, work03    Container image "nginx:1.7.9" already present on machine
  Normal  Created    73s        kubelet, work03    Created container nginx
  Normal  Started    73s        kubelet, work03    Started container nginx

升级容器中nginx版本

# 修改 nginx.yaml
image: nginx:1.9.0

# 提交给 K8S
# kubectl apply -f nginx.yaml

删除该容器应用

[root@master01 ~]# kubectl delete -f nginx.yaml 
pod "nginx" deleted

[root@master01 ~]# kubectl get pods
No resources found in default namespace.

nginx.yaml 参数简介

参数定义,分为 metadata 和 Spec 两部分:

metadata   存放元数据
Spec           存放这个对象独有的定义,用于描述它要表达的功能
kind: Pod
指明是一个 Pod 类型的API对象,该对象操作管理另一种 API 对象即Pod

metadata
API 对象的标识,即这个 Pod 的标识

spec.containers
表明是一个容器相关参数

spec.hostAliases
给容器的 /etc/hosts 文件中增加解析

查看 Pod 帮助文档

[root@master01 ~]# kubectl explain Pod

以上就是怎样发布容器到K8S集群中,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

k8s
AI