三、在kubernetes集群上运行应用

三、在kubernetes集群上运行应用

1、创建多个节点的k8s集群

创建config.yaml文件

# this is kind-example-config.yaml
# three node (two workers) cluster config
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
- role: worker
- role: worker

创建多节点集群

sudo kind create cluster --name my_cluster_name --config kind-example-config.yaml

2、创建一个简单的pod

2.1 关于pod

每个pod是一组紧密相关的容器(一个或多个容器),一个pod运行一个应用程序,它是一台独立的逻辑机器,内部每个容器运行一个进程。

2.2 创建应用config.yaml文件

apiVersion: v1
kind: Pod
metadata: 
   name: kubia-liveness
spec: 
   containers: 
   - image: ksfzhaohui/kubia-unhealthy
     name: kubia
     livenessProbe: 
        httpGet: 
           path: /
           port: 8080

2.3 执行指令

sudo kubectl create -f kubia-liveness-probe.yaml

2.4 pod的运行机制

在这里插入图片描述

3、创建更高级的ReplicationController

3.1 ReplicationController介绍以及相对于普通pod的优势

ReplicationController是一种kubernetes资源,可确保它的pod始终保持运行状态;如果pod因任何原因消失(包括节点崩溃),则ReplicationController会重新创建Pod;

ReplicationController会持续监控正在运行的pod列表,是确保pod的数量始终与其标签选择器匹配,一个ReplicationController有三个主要部分:

a、label selector(标签选择器),用于确定ReplicationController作用域中有哪些pod;

b、replica count(副本个数),指定应运行的pod数量;

c、pod template(pod模板),用于创建新的pod副本。

以上三个属性可以随时修改,但是只有副本个数修改对当前pod会有影响,比如当前副本数量减少了,那当前pod有可能会被删除。

ReplicationController提供的好处:

a、确保一个pod(或多个pod副本)持续运行,失败重启新pod;

b、集群节点发生故障时,它将为故障节点上运行的所有pod创建副本;

c、轻松实现pod的水平伸缩。

3.2 创建config.yaml

apiVersion: v1
kind: ReplicationController
metadata: 
   name: kubia
spec: 
   replicas: 3
   selector: 
      app: kubia
   template:
      metadata: 
         labels:
            app: kubia
      spec: 
         containers: 
         - name: kubia
           image: luksa/kubia
           ports: 
           - containerPort: 8080

3.3 执行指令

kubectl create -f kubia-rc.yaml

4、关于pod的其它操作

4.1 查询pod

sudo kubectl get pods

4.2 删除pod

sudo kubectl delete pod pod_name

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Kubernetes是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。它提供了一种便捷的方式来管理容器化应用程序的生命周期,并具有以下应用场景: 1. 应用程序的自动化部署和扩展:Kubernetes可以帮助开发人员和运维团队快速、可靠地部署和扩展应用程序。通过定义容器化应用程序的描述文件,Kubernetes可以自动创建、启动和管理多个容器实例,以满足应用程序的需求。 2. 高可用性和负载均衡:Kubernetes提供了高可用性的机制,确保应用程序在节点故障时仍然可用。它可以自动监测和替换故障节点上的容器实例,并通过负载均衡将流量分发到可用的实例上,以提供稳定的服务。 3. 弹性伸缩:Kubernetes可以根据应用程序的负载情况自动调整容器实例的数量。当负载增加时,它可以自动扩展容器实例以满足需求;当负载减少时,它可以自动缩减容器实例以节省资源。 4. 灰度发布和滚动更新:Kubernetes支持灰度发布和滚动更新的策略,可以帮助开发人员逐步将新版本的应用程序部署到生产环境中,以减少风险和影响。通过逐步替换旧版本的容器实例,Kubernetes可以实现无缝的应用程序更新。 5. 多租户和多环境管理:Kubernetes支持多租户和多环境的管理,可以帮助组织在同一个集群中管理多个应用程序和环境。通过命名空间和资源配额的机制,Kubernetes可以实现应用程序之间的隔离和资源的有效利用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值