无名老卒BLOG

自己不能胜任的事情,切莫轻易答应别人,一旦答应了别人,就必须实践自己的诺言。


  • 首页

  • Linux基础

  • 工具教程

  • Docker&k8s

  • 性能优化

  • 抓包分析

  • shell教程

  • 其他

  • 标签67

  • 关于

  • 搜索

k8s入门教程十三:statefulset控制器

发表于 2020-06-06 | 更新于 2020-06-07 | 分类于 Docker&k8s | 评论数:
本文字数: 12k | 阅读时长 ≈ 11 分钟

statefulset简介

statefulset也是一种POD控制器,那为什么要放在PV/PVC之后再简介呢?这是因为statefulset是必须也有持久化数据,每个POD所对应的PV都是不一样的。相对于Deployment所创建的POD是无状态的,那statefulset是属于有状态的,即可以保留POD的状态信息。其特点有:

  • 1、稳定的持久化存储,即Pod重新调度后还是能访问到相同的持久化数据,基于PVC来实现
  • 2、稳定的网络标志,即Pod重新调度后其PodName和HostName不变,基于Headless Service(即没有Cluster IP的Service)来实现
  • 3、有序部署,有序扩展,即Pod是有顺序的,在部署或者扩展的时候要依据定义的顺序依次依次进行(即从0到N-1,在下一个Pod运行之前所有之前的Pod必须都是Running和Ready状态),基于init containers来实现
  • 4、有序收缩,有序删除(即从N-1到0)
  • 5、有序的滚动更新
阅读全文 »

k8s入门教程十二:存储管理volume、PV/PVC

发表于 2020-05-31 | 更新于 2020-06-06 | 分类于 Docker&k8s | 评论数:
本文字数: 9.4k | 阅读时长 ≈ 9 分钟

kubernetes存储管理按照发展的历程,涉及到有Volume,PV(Persistent Volume)和PVC(PersistentVolumeClaims),和StorageClass,Volume是最早提出的存储卷,主要解决容器和数据存储的依赖关系,抽象底层驱动以支持不同的存储类型;使用Volume需要了解底层存储细节,因此提出了PV,Persistent Volume是由k8s管理员定义的存储单元,应用端使用PersistentVolumeClaims声明去调用PV存储,进一步抽象了底层存储;随着PV数量的增加,管理员需要不停的定义PV的数量,衍生了通过StorageClass动态生成PV,StorageClass通过PVC中声明存储的容量,会调用底层的提供商生成PV。本文介绍Volume的使用,下篇文章介绍PV,PVC和StorageClass。

  • Volume 存储卷,独立于容器,后端和不同的存储驱动对接
  • PV Persistent Volume持久化存储卷,和node类似,是一种集群资源,由管理员定义,对接不同的存储
  • PVC PersistentVolumeClaims持久化存储声明,和pod类似,作为PV的使用者
  • StorageClass 动态存储类型,分为静态和动态两种类型,通过在PVC中定义存储类型,自动创建所需PV
阅读全文 »

k8s入门教程十一:ConfigMap与secrets

发表于 2020-04-06 | 更新于 2020-05-31 | 分类于 Docker&k8s | 评论数:
本文字数: 17k | 阅读时长 ≈ 16 分钟

ConfigMap

ConfigMap 允许您将配置文件与镜像文件分离,以使容器化的应用程序具有可移植性。该页面提供了一系列使用示例,这些示例演示了如何使用存储在 ConfigMap 中的数据创建 ConfigMap 和配置 Pod。ConfigMap API给我们提供了向容器中注入配置信息的机制,ConfigMap可以被用来保存单个属性,也可以用来保存整个配置文件或者JSON二进制大对象。

阅读全文 »

k8s入门教程十:Ingress与Ingress controller

发表于 2020-04-05 | 更新于 2020-05-31 | 分类于 Docker&k8s | 评论数:
本文字数: 8.5k | 阅读时长 ≈ 8 分钟

简介在kubernetes中对外暴露服务的方式有两种:service(NodePort或者外部LoadBalancer)和ingress,其中service是提供四层的负载均衡,通过iptables DNAT或lvs nat模式实现后端Pod的代理请求。如需实现http,域名,URI,证书等请求方式 ...

阅读全文 »

k8s入门教程九:Service之服务发现

发表于 2020-03-29 | 更新于 2020-05-31 | 分类于 Docker&k8s | 评论数:
本文字数: 13k | 阅读时长 ≈ 11 分钟

简介

Pod存在生命周期,有销毁,有重建,无法提供一个固定的访问接口给客户端。并且为了同类的Pod都能够实现工作负载的价值,由此Service资源出现了,可以为一类Pod资源对象提供一个固定的访问接口和负载均衡。

Service和Pod对象的IP地址,一个是虚拟地址,一个是Pod IP地址,都仅仅在集群内部可以进行访问,无法接入集群外部流量。而为了解决该类问题的办法可以是在单一的节点上做端口暴露(hostPort)以及让Pod资源共享工作节点的网络名称空间(hostNetwork)以外,还可以使用NodePort或者是LoadBalancer类型的Service资源,或者是有7层负载均衡能力的Ingress资源。

阅读全文 »

k8s入门教程八:Pod控制器之DaemonSet、Job与CronJob

发表于 2020-03-29 | 分类于 Docker&k8s | 评论数:
本文字数: 9k | 阅读时长 ≈ 8 分钟

DaemonSet

DaemonSet简介

DaemonSet守护进程简称DS,适用于在所有node节点或部分节点运行一个daemon守护进程,,DaemonSet具有如下特点:

  • DaemonSet确保所有节点运行一个Pod副本
  • 指定节点运行一个Pod副本,通过标签选择器或者节点亲和性
  • 新增节点会自动在节点增加一个Pod
  • 移除节点时垃圾回收机制会自动清理Pod
阅读全文 »

k8s入门教程七:Pod控制器Deployment

发表于 2020-03-23 | 更新于 2020-03-29 | 分类于 Docker&k8s | 评论数:
本文字数: 8.7k | 阅读时长 ≈ 8 分钟

简介

Pod控制器是用于实现管理pod的中间层,确保pod资源符合预期的状态,pod的资源出现故障时,会尝试进行重启,当根据重启策略无效,则会重新新建pod的资源。分为以下几类:

阅读全文 »

带你走进redis安装、哨兵与集群配置

发表于 2020-03-16 | 更新于 2020-09-22 | 分类于 Linux基础 | 评论数:
本文字数: 28k | 阅读时长 ≈ 26 分钟

安装

Redis是REmote DIctionary Server(远程字典服务器)的缩写。一个开源的、高性能的、基于键值对的缓存与存储系统,目前redis稳定版是5.0.8,下载安装:

1
2
3
4
5
6
7
8
cd /usr/local/src/
wget http://download.redis.io/redis-stable.tar.gz
tar zxvf redis-stable.tar.gz
cd redis-stable/
make
make install PREFIX=/usr/local/redis
echo "export PATH=/usr/local/redis/bin:\$PATH" >/etc/profile.d/redis.sh
source /etc/profile.d/redis.sh
阅读全文 »

k8s入门教程六:POD资源限制与调度

发表于 2020-03-07 | 更新于 2020-07-29 | 分类于 Docker&k8s | 评论数:
本文字数: 11k | 阅读时长 ≈ 10 分钟

POD资源限制

简介

容器运行过程中需要分配所需的资源,如何与cggroup联动配合呢?答案是通过定义resource来实现资源的分配,资源的分配单位主要是cpu和memory,资源的定义分两种:requests和limits,requests表示请求资源,主要用于初始kubernetes调度pod时的依据,表示必须满足的分配资源;limits表示资源的限制,即pod不能超过limits定义的限制大小,超过则通过cggroup限制,pod中定义资源可以通过下面四个字段定义:

  • spec.container[].resources.requests.cpu 请求cpu资源的大小,如0.1个cpu和100m表示分配1/10个cpu;
  • spec.container[].resources.requests.memory 请求内存大小,单位可用M,Mi,G,Gi表示;
  • spec.container[].resources.limits.cpu 限制cpu的大小,不能超过阀值,cggroup中限制的值;
  • spec.container[].resources.limits.memory 限制内存的大小,不能超过阀值,超过会发生OOM;
阅读全文 »

k8s入门教程五:POD相关知识

发表于 2020-03-03 | 更新于 2020-03-12 | 分类于 Docker&k8s | 评论数:
本文字数: 29k | 阅读时长 ≈ 26 分钟

简介

Pod 是 Kubernetes 的一个最小调度以及资源单元。用户可以通过 Kubernetes 的 Pod API 生产一个 Pod,让 Kubernetes 对这个 Pod 进行调度,也就是把它放在某一个 Kubernetes 管理的节点上运行起来。一个 Pod 简单来说是对一组容器的抽象,它里面会包含一个或多个容器。

Deployment 是在 Pod 这个抽象上更为上层的一个抽象,它可以定义一组 Pod 的副本数目、以及这个 Pod 的版本。一般大家用 Deployment 这个抽象来做应用的真正的管理,而 Pod 是组成 Deployment 最小的单元。

阅读全文 »

k8s入门教程四:通过2个实例来了解k8s

发表于 2020-03-01 | 更新于 2020-03-12 | 分类于 Docker&k8s | 评论数:
本文字数: 10k | 阅读时长 ≈ 9 分钟

本文通过2个实例来了解k8s。第一个实例为TOMCAT+MYSQL实现在线打分系统,出处为Kubernetes权限指南(第四版);第二个实例为Kubernetes官方提供的PHP+Redis留言板的Hello World例子。

阅读全文 »

k8s入门教程三:多主集群部署

发表于 2020-03-01 | 更新于 2020-03-03 | 分类于 Docker&k8s | 评论数:
本文字数: 16k | 阅读时长 ≈ 15 分钟

高可用架构

kubernetes高可用集群通常由3或5个节点组成高可用集群,需要保障各个节点的高可用性

  • etcd 内置集群机制,保障数据持久存储
  • kube-apiserver 无状态api服务,有负载均衡调度器做负载分发,如haproxy或nginx
  • kube-scheduler 内置选举机制,保障调度器高可用,确保同个时刻一个leader节点工作,其他处于阻塞,防止脑裂
  • kube-controller-manager 内置的选举机制保障控制器高可用,机制和kube-scheduler一致。
阅读全文 »

k8s入门教程二:使用kubeadm在centos上安装k8s1.17

发表于 2020-03-01 | 分类于 Docker&k8s | 评论数:
本文字数: 31k | 阅读时长 ≈ 28 分钟

本文主要是参考了k8s官网的教程,并且镜像使用的是国内的阿里云的资源,保证了下载的速度。

准备工作

Kubernetes将集群中的机器划分为一个Master和一些Node。在Master上运行着集群管理相关的一组进程kube-apiserver、kube-controller-manager和kubescheduler,这些进程实现了整个集群的资源管理、Pod调度、弹性伸缩、安全控制、系统监控和纠错等管理功能,并且都是自动完成的。

Node作为集群中的工作节点,运行真正的应用程序,在Node上Kubernetes管理的最小运行单元是Pod。在Node上运行着Kubernetes的kubelet、kube-proxy服务进程,这些服务进程负责Pod的创建、启动、监控、重启、销毁,以及实现软件模式的负载均衡器。

阅读全文 »

k8s入门教程一:kubernetes简介

发表于 2020-03-01 | 更新于 2020-03-04 | 分类于 Docker&k8s | 评论数:
本文字数: 4.3k | 阅读时长 ≈ 4 分钟

简介

Kubernetes,从官方网站上可以看到,它是一个工业级的容器编排平台。Kubernetes 这个单词是希腊语,它的中文翻译是“舵手”或者“飞行员”。在一些常见的资料中也会看到“ks”这个词,也就是“k8s”,它是通过将8个字母“ubernete”替换为“8”而导致的一个缩写。

阅读全文 »

各类VPN的安装方法

发表于 2020-01-29 | 更新于 2021-01-15 | 分类于 其他 | 评论数:
本文字数: 561 | 阅读时长 ≈ 1 分钟

PPTP: https://effmx.com/articles/zai-vpsshang-da-jian-pptp-vpnde-ji-jian-gong-lue/ https://github.com/teddysun/across/blob/master/pptp.sh https://git ...

阅读全文 »

实战LVS三种负载均衡模式

发表于 2020-01-22 | 更新于 2020-12-27 | 分类于 Linux基础 | 评论数:
本文字数: 14k | 阅读时长 ≈ 13 分钟

LVS简介

LVS是章文嵩开发的一个国产开源负载均衡软件,中文官网为http://www.linuxvirtualserver.org/zh/index.html 。LVS最初是他在大学期间的玩具,随着后来使用的用户越来越多,LVS也越来越完善,最终集成到了Linux的内核中。其全称是Linux virtual server,即Linux虚拟服务器。之所以是虚拟服务器,是因为LVS自身是个负载均衡器(director),不直接处理请求,而是将请求转发至位于它后端真正的服务器realserver上。

LVS是四层(传输层tcp/udp)、七层(应用层)的负载均衡工具,只不过大众一般都使用它的四层负载均衡功能ipvs,而七层的内容分发负载工具ktcpvs(kernel tcp virtual server)不怎么完善,使用的人并不多。ipvs是集成在内核中的框架,可以通过用户空间的程序ipvsadm工具来管理,该工具可以定义一些规则来管理内核中的ipvs。就像iptables和netfilter的关系一样。

阅读全文 »

nginx功能之反向代理及其负载均衡

发表于 2020-01-19 | 更新于 2020-01-22 | 分类于 Linux基础 | 评论数:
本文字数: 10k | 阅读时长 ≈ 9 分钟

简介

反向代理是客户端访问web服务器时,请求发送到真实的web服务器的前端”助手”服务器上,由”助手”服务器决定将此请求转发给哪个真实的web服务器,外界客户端以为”助手”服务器就是真实的web服务器,而实际上它不是,也不需要安装任何web程序。”助手”服务器称为反向代理服务器。

nginx是一个优秀的反向代理服务程序,通过反向代理可以实现负载均衡的效果。因为是通过反向代理实现的负载均衡,所以nginx实现的是七层负载均衡。它能够识别http协议,根据http报文将不同类型的请求转发到不同的后端web服务器上。后端的web服务器称为”上游服务器”,即upstream服务器。

阅读全文 »

Nginx配置文件nginx.conf中文详解

发表于 2020-01-18 | 更新于 2020-01-22 | 分类于 Linux基础 | 评论数:
本文字数: 11k | 阅读时长 ≈ 10 分钟

网上转载,但原文链接不知道出处,原文作者如有看到,请留言。

阅读全文 »

ansible系列之五:role角色与实例

发表于 2020-01-09 | 更新于 2021-10-04 | 分类于 Linux基础 | 评论数:
本文字数: 8k | 阅读时长 ≈ 7 分钟

如果将所有的play都写在一个playbook中,很容易导致这个playbook文件变得臃肿庞大,且不易读。因此,可以将多个不同任务分别写在不同的playbook中,然后使用include将其包含进去即可。而role则是整合playbook的方式。无论是include还是role,其目的都是分割大playbook以及复用某些细化的play甚至是task。

阅读全文 »

ansible系列之四:playbook书写方法以及简单实例

发表于 2020-01-08 | 更新于 2021-10-07 | 分类于 Linux基础 | 评论数:
本文字数: 18k | 阅读时长 ≈ 16 分钟

由于playbook是使用yaml格式书写的,先来学习下。

yaml格式

以一个简单的playbook为例,说明yaml的基本语法。

阅读全文 »
123…5
wumingx

wumingx

98 日志
8 分类
67 标签
RSS
GitHub E-Mail
闽ICP备19024148号-1 © 2023 wumingx | 1.1m | 16:28
由 Hexo 强力驱动 v3.8.0
|
主题 – NexT.Gemini v7.1.1
|
0%