草庐IT

【云原生】2.3 Kubernetes 核心实战(上)

Coder.追 2024-01-02 原文

 哈喽~大家好呀,前面一篇我们部署了集群并且设置好了可视化界面,接下来我们进入到核心实战部分吧。

 

 🥇个人主页:个人主页​​​​​             

🥈 系列专栏:【云原生系列】

🥉与这篇相关的文章:            

1.5【云原生】 Docker 进阶实战【云原生】1.5 Docker 进阶实战_程序猿追的博客-CSDN博客_idea 链接docker
2.1【云原生】 Kubernetes基础概念【云原生】2.1 Kubernetes基础概念_程序猿追的博客-CSDN博客
2.2【云原生】 kubeadm创建集群【云原生】2.2 kubeadm创建集群_程序猿追的博客-CSDN博客

目录

一、操作Namespace

二、理解 Pod 

三、创建Pod

四、多容器 Pod 细节

五、使用Deployment部署应用


一、操作Namespace

我们资源创建的方式有命令行和 YAMLNamespace(名称空间)是用来隔离资源的。注:名称空间,用来对集群资源进行隔离划分。默认只隔离资源,不隔离网络。一般系统自带的有:kube-node-lease、kube-public、kube-system 等,默认的是 default。当然我们使用命令行也可以看到(kubectl get ns 与 kubectl get pods -A)。操作前一般我们要建一个 .yaml 文件。

✅创建空间

kubectl create ns hello

✅删除空间

kubectl delete ns hello

 

二、理解 Pod 

Pod 是运行中的一组容器,是 kubernetes中应用的最小单位。

❓Pod 与容器有什么关系呢? 

我们有三个节点,同样装上 Docker(提供容器化的运行环境,我们称之为 CRI【Container Runtime Interface】),加上了三个应用(都是以容器化的方式),k8s就是管理这些容器的,然后将应用加上 Pod,可以理解为将它们封装起来,所以才有了一句——是 kubernetes中应用的最小单位。(Pod 里面可以运行多个容器)

 三、创建Pod

有了上面的概念,这是我们就来创建 Pod,那么和以前一样,我们使用命令。

kubectl run mynginx --image=nginx

详细大家看了这么多,这个格式大家都熟了吧?kubectl run +名字 +镜像名

创建好了之后可以用 kubectl get pod 来查看(-A 是查看所有的)

📍 检查正在运行中的容器(在批量输入里面使用)

docker ps|grep mynginx

 

📍描述 Pod

kubectl describe pod 你自己的Pod名字


📍删除 Pod

kubectl delete pod Pod名字


✅查看Pod的运行日志

kubectl logs Pod名字

✅如何用配置文件方式创建一个Pod呢?

输入 vi pod. yaml,然后再输入以下代码 (记得退出并保存)

apiVersion: v1
kind: Pod
metadata:
  labels:
    run: mynginx
  name: mynginx
#  namespace: default
spec:
  containers:
  - image: nginx
    name: mynginx


✅kubectl apply -f pod. yaml 我们应用一下

✅每个 Pod - k8s 都会分配一个ip

kubectl get pod -owide


✅使用 Pod 的 ip + pod 里面运行容器的端口

curl 192.168.169.136

 四、多容器 Pod 细节

我们上一篇讲述了使用可视化界面,这里呢我们来看看命令行与界面的使用吧。

同样我们创建一个 yaml文件——vi mul ticontainer-pod.yaml,那么直接粘贴。

apiVersion: v1
kind: Pod
metadata:
  labels:
    run: mynginx
  name: mynginx
#  namespace: default
spec:
  containers:
  - image: nginx
    name: mynginx

 

可视化界面操作起来十分的友好,例如可以非常方便查看资源信息、状态、事件等。 下载好了之后,使用 curl + ip 就可以打印一些 htnl 代码。

 我们进入到 nginx 容器来,访问tomcat——curl + 本机地址:8080,同理在tomcat里面访问nginx只需要tomcat——curl + 本机地址:80,就可以了(非常的银杏化)

 

 五、使用Deployment部署应用

Deployment 作用:控制 Pod,使 Pod 拥有多副本,自愈,扩缩容等能力(不怕机器崩溃、荡机,具有自我恢复功能)。

一句话,它是用来控制 Pod 的。

✅创建部署

kubectl create deployment mytomcat --image=tomcat:8.5.68

✅ 创建 3 份副本

kubectl create deployment my-dep --image=nginx --replicas=3

 

 

下一篇预告继续 2.4 Kubernetes 核心实战

 (求关注)持续更新中……

有关【云原生】2.3 Kubernetes 核心实战(上)的更多相关文章

  1. 微信小程序开发入门与实战(Behaviors使用) - 2

    @作者:SYFStrive @博客首页:HomePage📜:微信小程序📌:个人社区(欢迎大佬们加入)👉:社区链接🔗📌:觉得文章不错可以点点关注👉:专栏连接🔗💃:感谢支持,学累了可以先看小段由小胖给大家带来的街舞👉微信小程序(🔥)目录自定义组件-behaviors    1、什么是behaviors    2、behaviors的工作方式    3、创建behavior    4、导入并使用behavior    5、behavior中所有可用的节点    6、同名字段的覆盖和组合规则总结最后自定义组件-behaviors    1、什么是behaviorsbehaviors是小程序中,用于实现

  2. ruby-on-rails - 从 Rails 2.3 升级到 Rails 4.0 - 2

    我们有一个目前在Rails2.3.12版和Ruby1.8.7版上运行的应用程序。我们想将我们的应用程序更新到Rails4.0和Ruby2.1.0。我们有大约200个模型和150个Controller。我想知道升级过程需要多大的努力。您还可以提供升级可以遵循的步骤。我们应该先升级Ruby然后再升级Rails还是相反? 最佳答案 您想要实现的目标将是史诗般的努力。我无法为您提供分步说明,因为不可能在一个答案中涵盖所有情况。我建议不要同时升级Ruby和Rails,而是分步升级。升级本身的复杂性是巨大的,但只要您的应用程序具有合理的测试覆盖

  3. ruby-on-rails - Nokogiri 要求 Ruby 版本 < 2.3 - 2

    我正在尝试让Rails在Windows10上运行。我正在使用Ruby2.3.0和Rails4.2.6,并且暂时使用Nokogiri1.6.3。当我尝试运行railsnewdemo时,它返回错误:Anerroroccurredwhileinstallingnokogiri(1.6.7.2),andBundlercannotcontinue.Makesurethat`geminstallnokogiri-v'1.6.7.2'`succeedsbeforebundling.当我运行geminstallnokogiri-v'1.6.7.2时,我得到:ERROR:Errorinstallingn

  4. 【云原生】SpringCloud-Spring Boot Starter使用测试 - 2

    目录SpringBootStarter是什么?以前传统的做法使用SpringBootStarter之后starter的理念:starter的实现: 创建SpringBootStarter步骤在idea新建一个starter项目、直接执行下一步即可生成项目。 在xml中加入如下配置文件:创建proterties类来保存配置信息创建业务类:创建AutoConfiguration测试如下:SpringBootStarter是什么? SpringBootStarter是在SpringBoot组件中被提出来的一种概念、简化了很多烦琐的配置、通过引入各种SpringBootStarter包可以快速搭建出一

  5. ruby-on-rails - 模型范围正在破坏 rake db :migrate - rails 3. 2.3 postgres 9.1.3 - 2

    我在新的Rails应用程序(3.2.3)中运行迁移时遇到了问题。我们正在使用postrgres9.1.3和-pg(0.13.2)-当我运行rakedb:create,然后运行​​rakedb:migrate,我得到->1.9.3-p194(master)rakedb:migrate--trace**Invokedb:migrate(first_time)**Invokeenvironment(first_time)**Executeenvironmentrakeaborted!PG::Error:ERROR:relation"roles"doesnotexistLINE4:WHEREa

  6. ruby - 如何让 ruby​​-prof 忽略 Ruby 核心/标准库/gem 方法? - 2

    我是Ruby分析的新手,看起来像ruby-prof是一个受欢迎的选择。我刚刚安装了gem并调用了我的程序:ruby-prof./my-prog.rb但是,输出非常冗长,因为包含所有Ruby核心和标准库方法以及其他gem的分析数据。例如,前三行是:8.790.0110.0100.0000.0013343*String#%7.280.0780.0090.0000.0692068*Array#each4.930.0380.0060.0000.0321098*Array#map这对我来说不是什么有用的信息,因为我已经知道我的程序经常处理字符串和数组,并且大概已经对这些类进行了优化。我只关心我代

  7. [面试直通版]操作系统核心之进程、线程与协程(下) - 2

    点击->操作系统复习的文章集目录操作系统线程线程是什么进程与线程的关系用户态/内核态操作系统资源管理内核态用户态内核态/用户态切换程序运行类型分析计算密集型IO密集型结合进程,线程来理解程序运行类型分析协程基础上下文切换协程协程为什么叫协作式线程?协程的优缺点操作系统线程典型问题:简述进程和线程的区别以下内容带您一步步了解线程是什么比进程更小的独立运行的基本单位-线程(Threads)线程的提出主要是为了提高系统内程序并发执行的程度,从而进一步提升系统的吞吐量,充分发挥多核CPU的优越性而设计的引入进程是为了操作系统更加方便地管理程序,使得多个程序能并发管理和执行而线程则是为了减少程序在并发执

  8. 你真正了解什么是接口测试么?接口实战一“篇”入魂 - 2

    最近在工作中,看到一些新手测试同学,对接口测试存在很多疑问,甚至包括一些从事软件测试3,5年的同学,在聊到接口时,也是一知半解;今天借着这个机会,对接口测试做个实战教学,顺便总结一下经验,分享给大家。计划拆分成4个模块跟大家做一个分享,(接口测试、接口基础知识、接口自动化、接口进阶)感兴趣的小伙伴记得关注,希望对你的日常工作和求职面试,带来一些帮助。注:文章较长有5000多字,希望小伙伴们认真看完,当然有些内容对小白同学不是太友好,如果你需要详细了解其中的一些概念或者名词,请在文章之后留言,后续我将针对大家的疑问,整理输出一些大家感兴趣的文章。随着开发模式的迭代更新,前后端分离已不是新的概念,

  9. 设计一个亿级高并发系统架构 - 12306火车票核心场景DDD领域建模 - 2

    “架设一个亿级高并发系统,是多数程序员、架构师的工作目标。许多的技术从业人员甚至有时会降薪去寻找这样的机会。但并不是所有人都有机会主导,甚至参与这样一个系统。今天我们用12306火车票购票这样一个业务场景来做DDD领域建模。”开篇要实现软件设计、软件开发在一个统一的思想、统一的节奏下进行,就应该有一个轻量级的框架对开发过程与代码编写做一定的约束。虽然DDD是一个软件开发的方法,而不是具体的技术或框架,但拥有一个轻量级的框架仍然是必要的,为了开发一个支持DDD的框架,首先需要理解DDD的基本概念和核心的组件。一.什么是领域驱动设计(DDD)首先要知道DDD是一种开发理念,核心是维护一个反应领域概

  10. ruby - 在保留所有 gem 的同时通过 rvm 升级到 Ruby 2.3 的最佳方法? - 2

    通过rvm升级到Ruby2.3的最佳方法是什么,同时保持所有gem安装在以前的版本上(例如json、nokogiri、等等)? 最佳答案 编辑这个问题在这里有答案:RVM:Howtousegemsfromadifferentruby?$rvmgemsetcopy$oldversion2.3.0##Assignorreplace$oldversionwitholdversionname原创在安装Ruby2.3之前,使用gemlist获取已安装的gem及其版本的列表。然后,在安装Ruby2.3之后,使用rvm将2.3设置为新的默认值:$

随机推荐