From 42ad7cf0b59714031f3e19c96f8bd839b5f38ec0 Mon Sep 17 00:00:00 2001 From: Ouyang Chunhui Date: Mon, 23 Sep 2024 18:03:32 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=EF=BC=9AK8s=E5=88=9D?= =?UTF-8?q?=E6=9C=9F=E6=8E=A2=E7=B4=A2=E7=AC=94=E8=AE=B0-=E7=AC=AC?= =?UTF-8?q?=E4=BA=8C=E8=8A=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Ouyang Chunhui --- .github/workflows/hexo_auto_deploy.yaml | 2 +- ...62\345\222\214\346\234\272\351\201\207.md" | 2 +- ...0-\347\254\254\344\270\200\350\212\202.md" | 2 +- ...0-\347\254\254\344\272\214\350\212\202.md" | 62 +++++++++++++++++++ ...56\345\222\214\344\275\277\347\224\250.md" | 2 +- ...73\351\261\274\347\211\271\346\225\210.md" | 2 +- ...01\347\274\226\350\257\221mysql-8-0-30.md" | 2 +- ...45\222\214\351\205\215\347\275\256fish.md" | 2 +- ...14\351\235\242\347\216\257\345\242\203.md" | 2 +- ...20\347\244\272\351\207\215\347\275\256.md" | 2 +- ...po-3-LTS\345\256\211\350\243\205gentoo.md" | 2 +- ...2\345\256\242,\351\203\250\347\275\262.md" | 2 +- .../baidu_verify_codeva-8oLI3fJ74Y.html | 0 13 files changed, 73 insertions(+), 11 deletions(-) create mode 100644 "blog/_posts/K8s\345\210\235\346\234\237\346\216\242\347\264\242\347\254\224\350\256\260-\347\254\254\344\272\214\350\212\202.md" rename {baidu => static}/baidu_verify_codeva-8oLI3fJ74Y.html (100%) diff --git a/.github/workflows/hexo_auto_deploy.yaml b/.github/workflows/hexo_auto_deploy.yaml index ad8e673..c574e86 100644 --- a/.github/workflows/hexo_auto_deploy.yaml +++ b/.github/workflows/hexo_auto_deploy.yaml @@ -34,7 +34,7 @@ jobs: sudo lxc exec qhjack /usr/bin/clean_qhjack_web.fish - name: baidu verfiy run: | - cp -rfv baidu/* public + cp -rfv static/* public - name: Upload files to LXD on direct.qhjack.top run: | cp -r public qhjack diff --git "a/blog/_posts/AI\345\217\221\345\261\225\347\256\200\345\217\262\345\222\214\346\234\272\351\201\207.md" "b/blog/_posts/AI\345\217\221\345\261\225\347\256\200\345\217\262\345\222\214\346\234\272\351\201\207.md" index bbbb867..0f7bcad 100644 --- "a/blog/_posts/AI\345\217\221\345\261\225\347\256\200\345\217\262\345\222\214\346\234\272\351\201\207.md" +++ "b/blog/_posts/AI\345\217\221\345\261\225\347\256\200\345\217\262\345\222\214\346\234\272\351\201\207.md" @@ -9,7 +9,7 @@ categories: AI comments: true copyright_reprint: false description: 最近GPT的概念火爆,大量的自媒体故意引导流量,大肆吹嘘GPT,那么现在,我们就一起探讨下AI的发展历史,和GPT在其中的角色 -abbrlink: 2076766741 +abbrlink: 2076766547 date: 2023-05-06 13:20:09 --- diff --git "a/blog/_posts/K8s\345\210\235\346\234\237\346\216\242\347\264\242\347\254\224\350\256\260-\347\254\254\344\270\200\350\212\202.md" "b/blog/_posts/K8s\345\210\235\346\234\237\346\216\242\347\264\242\347\254\224\350\256\260-\347\254\254\344\270\200\350\212\202.md" index d8007ed..8fb3d2a 100644 --- "a/blog/_posts/K8s\345\210\235\346\234\237\346\216\242\347\264\242\347\254\224\350\256\260-\347\254\254\344\270\200\350\212\202.md" +++ "b/blog/_posts/K8s\345\210\235\346\234\237\346\216\242\347\264\242\347\254\224\350\256\260-\347\254\254\344\270\200\350\212\202.md" @@ -7,7 +7,7 @@ tags: comments: true copyright_reprint: false description: 最近在学习k8s,这是笔记 -abbrlink: 3278372884 +abbrlink: 3278372690 date: 2024-09-21 13:16:21 --- diff --git "a/blog/_posts/K8s\345\210\235\346\234\237\346\216\242\347\264\242\347\254\224\350\256\260-\347\254\254\344\272\214\350\212\202.md" "b/blog/_posts/K8s\345\210\235\346\234\237\346\216\242\347\264\242\347\254\224\350\256\260-\347\254\254\344\272\214\350\212\202.md" new file mode 100644 index 0000000..5aac104 --- /dev/null +++ "b/blog/_posts/K8s\345\210\235\346\234\237\346\216\242\347\264\242\347\254\224\350\256\260-\347\254\254\344\272\214\350\212\202.md" @@ -0,0 +1,62 @@ +--- +title: K8s初期探索笔记-第二节 +tags: + - Devops + - 运维/OPS + - kubernetes(k8s) +comments: true +copyright_reprint: false +description: 最近在学习k8s,这是笔记 +abbrlink: 3278372691 +date: 2024-09-23 13:43:39 +--- + +# kubernetes 资源类型 + +## Service与Pod + +应用类资源主要是围绕`Service`和`Pod`两个资源类型展开的。 + +一般来说,`Service`指的是无状态服务,通常由对应的多个程序副本(`Pod`实例)提供,在特殊情况下也可以是有状态单实例服务,比如`MySQL`这种数据库存储服务。`Service`既可以是`TCP`服务,也可以是`UDP`服务,还可以是`SCTP`服务,对具体的应用层协议的内容并没有任何限制。SCTP(Stream Control Transmission Protocol,流控制传输协议)是一个基于IP的可靠的面向控制信令的传输层协议,在电信领域被广泛应用,可以为电信级信令提供高效、可靠的传输服务,在5G核心网中也被应用。 + +与我们常规理解的服务不同,Kubernetes中的`Service`具有全局唯一的虚拟`ClusterIP`地址,`Service`一旦被创建,Kubernetes就会自动为它分配一个可用的`ClusterIP`地址,而且在`Service`的整个生命周期内,它的`ClusterIP`都不会改变,客户端可以通过【虚拟IP地址+服务的端口】的形式直接访问服务,在通过部署Kubernetes集群的DNS服务,就可以实现Service Name(域名)到`ClusterIP`地址的DNS映射功能,我们只要使用服务的名称(DNS名称)即可顺利完成到目标服务的访问请求。这样,【服务发现】这个传统架构中的棘手问题首次得到完美解决。同时,凭借`ClusterIP`地址的独特设计,Kubernetes进一步实现了`Service`透明负载均衡和故障自动转移和恢复的高级特性。 + +通过分析、识别并建模系统中的所有服务为微服务 —— Kubernetes Service, 我们的系统最终由多个提供不同业务能力而又彼此独立的微服务单元组成,服务之间通过 TCP/IP通信,形成了强大又灵活的弹性网络,拥有强大的分布式、弹性扩展和容错能力,程序框架也变得简单和直观许多。 + +接下来说说与`Service`密切相关的核心资源对象 —— `Pod`。 + +`Pod`是Kubernetes中最重要的基础概念之一,每个`Pod`都有一个特殊的被称为【根容器】的`Pause`容器,`Pause`容器对应的镜像属于Kubernetes的一部分,除了`Pause`容器,每个`Pod`都还有一个或者多个紧密相关的用户业务容器。 + +为什么Kubernetes会设计出一个全新的`Pod`概念,并且`Pod`会有这样的特殊组成结构?原因如下: + +1. 为多进程之间的协作提供一个抽象模型,将`Pod`作为基本的调度、复制等管理工作的最小单位,能让多个应用进程一起有效的调度和伸缩 +2. `Pod`中的多个业务容器共享`Pause`容器的IP,并且共享`Pause`容器挂接的`Volume`,这样既简化了密切关联的业务容器之间的通信问题,也很好的解决了他们之间的文件共享问题。 + +Kubernetes 为每个`Pod`都分配了一个唯一的IP,称之为【Pod IP】,一个`Pod`中的多个容器共享Pod IP地址。Kubernetes要求底层网络支持集群中任意两个`Pod`之间的TCP/IP直接通信,这通常采用虚拟二层网络技术实施,例如Flannel、Open vSwitch等,因此我们需要记住一点:在Kubernetes中,一个`Pod`中的容器与其他主机上的`Pod`容器能够直接通信。 + +`Pod`其实有两种类型:普通`Pod`和静态`Pod(Static Pod)`。静态Pod比较特殊,并没有被存放在Kubernetes的`etcd`中,而是被存放在某个具体的`Node`上的一个具体文件中,并且只能在此`Node`上启动、运行。而普通`Pod`一旦被创建,就会被存放在`etcd`中,随后进程实例化成一组相关的`Docker`容器并启动。在默认情况下,当`Pod`中的某个容器停止时,Kubernetes会自动检测到这个问题并且重新启动这个`Pod`(重启`Pod`中的所有容器),如果`Pod`所在的`Node`宕机,就会将这个`Node`上所有的`Pod`都重新调度到其他节点。 + +下面是我们在之前的Hello, World实例里用到的myweb这个`Pod`的资源定义文件: + +```yaml +apiVersion: v1 +kind: Pod +metadata: + name: myweb + labels: + name: myweb +spec: + containers: + - name: myweb + image: kubeguide/tomcat-app:v1 + ports: + - containerPort: 8080 +``` + +在以上定义中,`kind`属性的值为`Pod`,表明这是一个`Pod`类型的资源对象; `metadata`里的`name`属性为`Pod`的名称,在`metadata`里还能定义资源对象的标签,这里生命`myweb`拥有一个`name=myweb`标签。在`Pod`中所包含的容器组的定义则在`spec`部分中声明,这里定义里一个名为`myweb`且对应的镜像为`kubeguide/tomcat-app:v1`的容器,并在`8080`端口(containerPort)启动容器进程。`Pod`的IP地址加上这里的容器端口组成里一个新的概念 —— Endpoint,代表此`Pod`的一个服务进程的对外通信地址。一个`Pod`也存在具有多个`Endpoint`的情况,比如当我们把`Tomcat`定义为一个`Pod`时,可以对外暴露管理端口和服务端口这两个`Endpoint`。 + +我们所熟悉的Docker Volume在Kubernetes也有对应的概念 —— Pod Volume, Pod Volume被定义在`Pod`中,然后被`Pod`的各个容器挂载(Mount)到自己的文件系统中。Volume简单来说就是被挂载到`Pod`容器中的文件目录。 + +这里顺便提一下Kubernetes中的`Event`概念,`Event`是一个事件记录,记录里事件的最早产生时间、最后重现时间、重复次数、发起者、类型,以及导致此次事件的原因等众多信息。`Event`记录通常会被关联到某个具体的资源对象上,是排查故障的重要参考信息。之前我们看到在`Node`的描述信息中包括`Event`,而在`Pod`的描述信息中同样包括`Event`,当我们发现某个`Pod`迟迟无法创建时,可以通过`kubectl describe pod xxxx`命令查看它的描述信息,以定位问题的成因。 + +在继续说明`Service`和`Pod`的关系之前,我们需要先理解Kubernetes中的一个重要机制 —— 标签匹配机制。 diff --git "a/blog/_posts/fish-shell\347\232\204\351\205\215\347\275\256\345\222\214\344\275\277\347\224\250.md" "b/blog/_posts/fish-shell\347\232\204\351\205\215\347\275\256\345\222\214\344\275\277\347\224\250.md" index 73987a0..079e6d4 100644 --- "a/blog/_posts/fish-shell\347\232\204\351\205\215\347\275\256\345\222\214\344\275\277\347\224\250.md" +++ "b/blog/_posts/fish-shell\347\232\204\351\205\215\347\275\256\345\222\214\344\275\277\347\224\250.md" @@ -10,7 +10,7 @@ post_link: 'https://www.xiebruce.top/1811.html' copyright_reprint: true description: >- 我之前写过一篇文章:[Mac/Linux下配置iTerm2+zsh+powerline美化终端窗口](https://www.xiebruce.top/590.html),文章介绍了使用zsh后,使我们敲命令更加的便捷,看上去也更加的美观。 -abbrlink: 2634740511 +abbrlink: 2634740317 --- 我之前写过一篇文章:[Mac/Linux下配置iTerm2+zsh+powerline美化终端窗口](https://www.xiebruce.top/590.html),文章介绍了使用zsh后,使我们敲命令更加的便捷,看上去也更加的美观。 diff --git "a/blog/_posts/theme\346\263\250\345\205\245\345\231\250\345\256\236\347\216\260\345\205\273\351\261\274\347\211\271\346\225\210.md" "b/blog/_posts/theme\346\263\250\345\205\245\345\231\250\345\256\236\347\216\260\345\205\273\351\261\274\347\211\271\346\225\210.md" index 4bfb346..af0c92d 100644 --- "a/blog/_posts/theme\346\263\250\345\205\245\345\231\250\345\256\236\347\216\260\345\205\273\351\261\274\347\211\271\346\225\210.md" +++ "b/blog/_posts/theme\346\263\250\345\205\245\345\231\250\345\256\236\347\216\260\345\205\273\351\261\274\347\211\271\346\225\210.md" @@ -7,7 +7,7 @@ categories: hexo copyright_reprint: false comments: true description: 大家是不是好奇别人的博客如何实现养鱼特效呢,这里就告诉你如何实现hexo Next Themes 的养鱼特效 -abbrlink: 549973193 +abbrlink: 549972999 date: 2023-03-22 12:20:50 --- diff --git "a/blog/_posts/\345\234\250Debian-11\344\270\255\346\272\220\347\240\201\347\274\226\350\257\221mysql-8-0-30.md" "b/blog/_posts/\345\234\250Debian-11\344\270\255\346\272\220\347\240\201\347\274\226\350\257\221mysql-8-0-30.md" index 623a518..5ae9f53 100644 --- "a/blog/_posts/\345\234\250Debian-11\344\270\255\346\272\220\347\240\201\347\274\226\350\257\221mysql-8-0-30.md" +++ "b/blog/_posts/\345\234\250Debian-11\344\270\255\346\272\220\347\240\201\347\274\226\350\257\221mysql-8-0-30.md" @@ -7,7 +7,7 @@ author: Xie Bruce comments: true post_link: 'https://www.xiebruce.top/1811.html' copyright_reprint: true -abbrlink: 516260153 +abbrlink: 516259959 description: 在Debian中源码编译mysql 8.0.30,整个过程比较详细的解释了一些很多文章没有写,但是很多人又不太懂的知识。 date: 2022-10-09 23:24:02 --- diff --git "a/blog/_posts/\345\234\250gentoo\345\256\211\350\243\205\345\222\214\351\205\215\347\275\256fish.md" "b/blog/_posts/\345\234\250gentoo\345\256\211\350\243\205\345\222\214\351\205\215\347\275\256fish.md" index 701ea5f..6ab28df 100644 --- "a/blog/_posts/\345\234\250gentoo\345\256\211\350\243\205\345\222\214\351\205\215\347\275\256fish.md" +++ "b/blog/_posts/\345\234\250gentoo\345\256\211\350\243\205\345\222\214\351\205\215\347\275\256fish.md" @@ -6,7 +6,7 @@ categories: linux comments: true copyright_reprint: false description: 在这篇文章我们将在gentoo上安装fish,一个非常有意思的shell -abbrlink: 3509177094 +abbrlink: 3509176900 date: 2022-11-29 14:40:16 --- diff --git "a/blog/_posts/\345\237\272\344\272\216gentoo\347\263\273\347\273\237\351\203\250\347\275\262wayland\345\256\232\345\210\266\346\241\214\351\235\242\347\216\257\345\242\203.md" "b/blog/_posts/\345\237\272\344\272\216gentoo\347\263\273\347\273\237\351\203\250\347\275\262wayland\345\256\232\345\210\266\346\241\214\351\235\242\347\216\257\345\242\203.md" index 0e5007d..35b7c8d 100644 --- "a/blog/_posts/\345\237\272\344\272\216gentoo\347\263\273\347\273\237\351\203\250\347\275\262wayland\345\256\232\345\210\266\346\241\214\351\235\242\347\216\257\345\242\203.md" +++ "b/blog/_posts/\345\237\272\344\272\216gentoo\347\263\273\347\273\237\351\203\250\347\275\262wayland\345\256\232\345\210\266\346\241\214\351\235\242\347\216\257\345\242\203.md" @@ -6,7 +6,7 @@ categories: linux comments: true copyright_reprint: false description: 我将在Gentoo系统上部署基于WayLand的定制桌面环境 -abbrlink: 4097777095 +abbrlink: 4097776901 date: 2022-12-09 17:16:20 --- # 背景 diff --git "a/blog/_posts/\346\225\205\351\232\234\357\274\232\344\277\256\345\244\215nvidia\345\210\207\346\215\242tty\345\220\216\346\217\220\347\244\272\351\207\215\347\275\256.md" "b/blog/_posts/\346\225\205\351\232\234\357\274\232\344\277\256\345\244\215nvidia\345\210\207\346\215\242tty\345\220\216\346\217\220\347\244\272\351\207\215\347\275\256.md" index 97524b0..c05ea35 100644 --- "a/blog/_posts/\346\225\205\351\232\234\357\274\232\344\277\256\345\244\215nvidia\345\210\207\346\215\242tty\345\220\216\346\217\220\347\244\272\351\207\215\347\275\256.md" +++ "b/blog/_posts/\346\225\205\351\232\234\357\274\232\344\277\256\345\244\215nvidia\345\210\207\346\215\242tty\345\220\216\346\217\220\347\244\272\351\207\215\347\275\256.md" @@ -7,7 +7,7 @@ categories: linux comments: true copyright_reprint: false description: 这是一次故障记录 -abbrlink: 3117127514 +abbrlink: 3117127320 date: 2022-12-01 13:34:21 --- diff --git "a/blog/_posts/\347\273\231Orangepo-3-LTS\345\256\211\350\243\205gentoo.md" "b/blog/_posts/\347\273\231Orangepo-3-LTS\345\256\211\350\243\205gentoo.md" index c98aa74..e580a13 100644 --- "a/blog/_posts/\347\273\231Orangepo-3-LTS\345\256\211\350\243\205gentoo.md" +++ "b/blog/_posts/\347\273\231Orangepo-3-LTS\345\256\211\350\243\205gentoo.md" @@ -6,7 +6,7 @@ tags: categories: linux author: 杰克 comments: true -abbrlink: 4150104972 +abbrlink: 4150104778 date: 2022-07-31 16:23:00 --- diff --git "a/blog/_posts/\350\275\254\345\205\245hexo,\347\254\254\344\270\200\347\257\207\345\215\232\345\256\242,\351\203\250\347\275\262.md" "b/blog/_posts/\350\275\254\345\205\245hexo,\347\254\254\344\270\200\347\257\207\345\215\232\345\256\242,\351\203\250\347\275\262.md" index 2406102..cb04da5 100644 --- "a/blog/_posts/\350\275\254\345\205\245hexo,\347\254\254\344\270\200\347\257\207\345\215\232\345\256\242,\351\203\250\347\275\262.md" +++ "b/blog/_posts/\350\275\254\345\205\245hexo,\347\254\254\344\270\200\347\257\207\345\215\232\345\256\242,\351\203\250\347\275\262.md" @@ -7,7 +7,7 @@ tags: categories: hexo author: 杰克 comments: true -abbrlink: 683963582 +abbrlink: 683963388 date: 2022-05-17 20:16:55 --- diff --git a/baidu/baidu_verify_codeva-8oLI3fJ74Y.html b/static/baidu_verify_codeva-8oLI3fJ74Y.html similarity index 100% rename from baidu/baidu_verify_codeva-8oLI3fJ74Y.html rename to static/baidu_verify_codeva-8oLI3fJ74Y.html