首页 > 其他分享 >K8s 是啥?

K8s 是啥?

时间:2023-12-25 13:46:12浏览次数:28  
标签:kubectl Service Kubernetes app 应用程序 K8s Pods

啥是K8s?

Kubernetes是一个开源的容器 orchestration系统,它可以帮助你自动化部署、扩展和管理容器化应用。

以下是一些入门和日常使用K8S的关键步骤和概念:

  1. 理解基础概念

    • Pods: Kubernetes中最基础的调度单元,一个Pod可以包含一个或多个紧密相关的容器。
    • Deployments: 用于管理Pods的完整生命周期,包括滚动更新、回滚和复制等。
    • Services: 提供了一种稳定的网络标识符和通信端点,用于访问一组Pods。
    • Volumes: 为Pods提供持久化存储。
  2. 安装和配置Kubernetes

    • 根据你的操作系统和需求选择合适的安装方法,如通过kubeadm、Minikube或者云服务商提供的托管K8S服务。
  3. 创建和管理资源

    • 使用kubectl命令行工具来创建、查看、修改和删除各种K8S资源对象,如Pods、Deployments和Services。
  4. 部署应用

    • 编写YAML或JSON格式的配置文件,定义你的应用程序所需的Pods、Deployments和服务。
    • 使用kubectl apply -f <your-config-file>命令将配置应用到Kubernetes集群中。
  5. 扩展和更新应用

    • 使用Deployments可以方便地进行水平扩展和回滚操作,只需修改Deployment的副本数量或更新其镜像版本即可。
  6. 监控和调试

    • 使用kubectl get, describe, 和 logs 命令来监控和调试你的应用程序和Kubernetes资源。
  7. 高级主题

    • 学习如何使用StatefulSets管理有状态应用。
    • 探索Ingress资源和Controller如何处理外部流量进入集群。
    • 理解Helm charts如何简化应用程序的打包和部署过程。

在日常使用中,你需要熟悉并掌握Kubernetes的核心概念和技术,并根据你的应用程序需求灵活调整和优化你的Kubernetes配置。同时,保持对Kubernetes社区和新特性的关注也是非常重要的,这可以帮助你不断提升和优化你的K8S使用经验。

如何部署

部署应用程序到Kubernetes主要包括以下步骤:

  1. 编写YAML配置文件

    • 创建一个或多个YAML文件来描述你的应用程序所需的Kubernetes资源,如Pods、Deployments、Services等。
      以下是一个简单的Deployment配置文件示例:
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: my-app-deployment
    spec:
      replicas: 3
      selector:
        matchLabels:
          app: my-app
      template:
        metadata:
          labels:
            app: my-app
        spec:
          containers:
          - name: my-app-container
            image: your-docker-repo/your-image-name:latest
            ports:
            - containerPort: 8080
    
  2. (可选)创建Service

    • 如果你需要从集群外部或者集群内部的其他服务访问你的应用程序,可以创建一个Service。以下是一个简单的ClusterIP类型Service配置文件示例:
    apiVersion: v1
    kind: Service
    metadata:
      name: my-app-service
    spec:
      selector:
        app: my-app
      ports:
      - name: http
        port: 80
        targetPort: 8080
      type: ClusterIP
    
  3. 使用kubectl应用配置

    • 确保你的kubectl已经配置为指向正确的Kubernetes集群。
    • 使用kubectl apply命令将你的配置应用到集群中:
    kubectl apply -f deployment.yaml
    kubectl apply -f service.yaml
    
  4. 验证部署

    • 使用以下命令检查Deployment和Pod的状态:
    kubectl get deployments
    kubectl get pods
    
  5. (可选)如果创建了Service,获取Service的URL

    • 如果你创建了一个对外提供服务的Service,并且它是一个NodePort或LoadBalancer类型,你可以获取其访问URL:
    kubectl get services my-app-service
    

    输出中会显示Service的外部IP和端口,你可以通过http://<external-ip>:<port>访问你的应用程序。

以上就是部署应用程序到Kubernetes的基本步骤。请注意,这只是一个基础示例,实际部署过程中可能需要根据你的应用程序特性和需求进行更多配置和优化。



欢迎关注公-众-号【TaonyDaily】、留言、评论,一起学习。

公众号

Don’t reinvent the wheel, library code is there to help.

文章来源:刘俊涛的博客


若有帮助到您,欢迎点赞、转发、支持,您的支持是对我坚持最好的肯定(_)

标签:kubectl,Service,Kubernetes,app,应用程序,K8s,Pods
From: https://www.cnblogs.com/lovebing/p/17925925.html

相关文章

  • K8S_IPV6 POD与数据库联通方法以及快速网络调试的一个思路
    K8S_IPV6POD与数据库联通方法以及快速网络调试的一个思路背景前端时间搭建了一套K8SonlyIPV6SingleStack的测试环境因为自己长时间不搞K8S了,并且IPV6的搭建方法墙内的文档很不完整我这边仅是搭建了一套比较基本的K8S_calico_ingress的单栈IPV6的环境但是同事一直......
  • minikube 部署 k8s v1.28.3
    安装kubeadm、kubelet 和 kubectl此步骤可选下载kubeadm#wget-P/usr/local/binhttps://dl.k8s.io/release/v1.28.3/bin/linux/amd64/kubeadm下载kubelet#wget-P/usr/local/binhttps://dl.k8s.io/release/v1.28.3/bin/linux/amd64/kubelet下载kubectl#wget-......
  • k8s pod从私有仓库拉取镜像凭证配置
    方案一:通过Docker配置文件创建secret#配置.docker/config.json文件,包含了与DockerHub或其他私有仓库进行身份验证所需的凭据信息。[root@mac-25~]#cat~/.docker/config.json{ "auths":{ "registry.test.com":{ "auth":"dmlwZXIucm9ib3QuZG9ja2VyOlNUYW"......
  • k8s pv pvc
    如下代码测试本地的PVC:apiVersion:v1kind:PersistentVolumemetadata:name:mypvlabels:type:localspec:accessModes:-ReadWriteOncestorageClassName:local-pathcapacity:storage:10GihostPath:path:"/nfs"---apiVersion......
  • k8s集群搭建-2
    一、前面做过k8s的集群搭建主要是1.24版本一下的,1.24版本后"弃用docker"改用CRI了。所以这里就之前的集群安装做一下补充。老版集群地址:https://www.cnblogs.com/ll409546297/p/16718681.html二、k8s版本选择:docker-ce:20.10.24 cri-docker:0.3.8k8s:1.26.9。......
  • k8s组件、工作原理详解
    1.k8s组件  Master组件:kube-apiserver(APIServer):角色:提供集群的唯一入口,处理所有API请求。原理:接收来自客户端(kubectl、UI界面)和其他组件的请求,验证和授权请求,然后将其转发到其他组件或更新etcd中的数据。etcd:角色:分布式键值存储,保存整个集群的状......
  • K8s的常用命令
    本文旨在记录K8s使用过程中常用的CLI命令集,用作个人学习,不定期更新。1.创建资源一般创建资源会有两种方式:通过文件或者命令创建。#通过文件创建一个Deploymentkubectlcreate-f/path/to/deployment.yamlcat/path/to/deployment.yaml|kubectlcreate-f-#不过一般可......
  • k8s~ingress_service_endpoint_pod四壮士
    在Kubernetes中,Service和Endpoints是两个重要的概念,它们之间存在着密切的关系。Service:Service是Kubernetes中用于定义一组Pod的访问方式的抽象。通过创建Service,可以为一组具有相同标签的Pod提供统一的访问入口,使得客户端可以通过Service来访问这些Pod,而无需了解其具体的IP地......
  • K8S增加限制后的启动时间验证
    K8S增加限制后的启动时间验证背景前段时间看了下JVM载linux上面的启动时间,进行过一些验证.最近想着能够验证一下K8S上面的启动相关的信息所以就整理了一下.虽然没有特别好的结论,但是还是发现自己对JVM的启动和参数还是了解的不够深入.自己的几个启动参数1."-XX:......
  • k8s Ingress使用详解(云原生kubernetes)
    k8s Ingress使用详解(云原生kubernetes)目录一、什么是Ingress二、Ingress工作机制三、Ingress核心概念四、Ingress工作原理五、Ingress使用搭建Ingress环境1、获取ingress-nginx2、创建ingress-nginx部署两组service创建tomcat-nginx.yaml配置Http访问代理如何通过外网......