无名老卒BLOG

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


  • 首页

  • Linux基础

  • 工具教程

  • Docker&k8s

  • 性能优化

  • 抓包分析

  • shell教程

  • 其他

  • 标签61

  • 关于

  • 搜索

docker以及k8s教程导航页

置顶 | 发表于 2020-05-31 | 更新于 2020-07-29 | 分类于 Docker&k8s | 评论数:
本文字数: 1.1k | 阅读时长 ≈ 1 分钟

docker 入门教程

  • docker入门教程一:简介与安装
  • docker入门教程二:镜像与容器
  • docker入门教程三:数据卷与端口
  • docker入门教程四:Dockerfile制作镜像与指令详解
阅读全文 »

zookeeper & kafka部署和使用

发表于 2021-01-05 | 分类于 Linux基础 | 评论数:
本文字数: 12k | 阅读时长 ≈ 11 分钟

zookeeper

简介

ZooKeeper是一个开源的分布式应用程序协调服务,是Google的Chubby一个开源的实现。ZooKeeper为分布式应用提供一致性服务,提供的功能包括:分布式同步(Distributed Synchronization)、命名服务(Naming Service)、集群维护(Group Maintenance)、分布式锁(Distributed Lock)等,简化分布式应用协调及其管理的难度,提供高性能的分布式服务。

ZooKeeper本身可以以单机模式安装运行,不过它的长处在于通过分布式ZooKeeper集群(一个Leader,多个Follower),基于一定的策略来保证ZooKeeper集群的稳定性和可用性,从而实现分布式应用的可靠性。

阅读全文 »

keepalived几个配置问题讲解

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

配置

使用keepalived做主备,其中一台设置为master,一台设置为backup。当master出现异常后,backup自动切换为master。当backup成为master后,master恢复正常后会再次抢占成为master,导致不必要的主备切换。因此可以将两台keepalived初始状态均配置为backup,设置不同的优先级,优先级高的设置nopreempt解决异常恢复后再次抢占的问题。

有如下配置表示意思也比较简单,VIP为192.168.0.18,2台机器的初始state都是BACKUP,machineA的优先级是15,machineB的优先级是13,配置了/root/1.sh这个来检测服务是否正常。

machineA机器配置:

阅读全文 »

openwrt出现dnsmasq部分域名解析不了的问题

发表于 2020-10-25 | 分类于 其他 | 评论数:
本文字数: 3.5k | 阅读时长 ≈ 3 分钟

前言

最近几天在访问一些常用网站的时候,如ping.chinaz.com,出现了域名无法解析的情况,由于是常用网站,才不得不进行问题排查。网上搜索了几个方法,都是不行,如以下方法:

  • 在 网络 --> DHCP/DNS --> 常规配置 中,重绑定保护取消掉 openwrt路由器dnsmasq部分域名无法解析)
  • 在/etc/dnsmasq.conf添加配置no-resolv和server等:https://oracleblog.org/its-my-life/can-not-resolv-some-domain-name-in-openwrt/
  • dnsmasq进程无法启动:http://www.openwrt.pro/post-44.html
阅读全文 »

git使用方法小结

发表于 2020-09-20 | 分类于 Linux基础 | 评论数:
本文字数: 11k | 阅读时长 ≈ 10 分钟

本地文件添加到github

  • 第一步生成ssh key
1
ssh-keygen -t rsa -C "your_email@youremail.com"

后面的 your_email@youremail.com 改为你在github上注册的邮箱,之后会要求确认路径和输入密码,我们这使用默认的一路回车就行。

成功的话会在当前用户~/下生成.ssh文件夹,如我的目录是C:\Users\xxx\ .ssh,打开id_rsa.pub,复制里面的key(可以把这个公钥文件删除,只保留id_rsa私钥文件)。

回到github上,进入 Account Settings(账户配置),左边选择SSH Keys,Add SSH Key,title随便填,粘贴在你电脑上生成的key。

阅读全文 »

openssl手工生成证书以及acme.sh自动部署证书

发表于 2020-09-12 | 更新于 2021-01-14 | 分类于 抓包分析 | 评论数:
本文字数: 10k | 阅读时长 ≈ 9 分钟

证书简介

有关https是如何保证数据的安全证的,可以参考文章:详解https加密通信原理 ,以下简介证书相关的知识点。

我们一般在服务器上面可以使用openssl命令来生成证书的.而一般是使用X509的证书链。x509证书一般会用到三类文件,key,csr,crt。

  • key是私用密钥,openssl格式,通常是rsa算法

  • csr是证书请求文件,用于申请证书。在申请的时候,必须使用自己的私钥来签署申请,还可以设定一个密钥。

  • crt是证书文件(windows下面的csr,其实是crt),是签署人用自己的key给你签署的凭证。
阅读全文 »

实战CentOS7安装且使用KVM虚拟机

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

镜像格式

介绍

  • RAW格式是直接给云服务器进行读写的文件。RAW不支持动态增长空间,是镜像中I/O性能最好的一种格式。
  • QCOW2格式镜像是QEMU模拟器支持的一种磁盘镜像,是用一个文件的形式来表示一块固定大小的块设备磁盘。与普通的RAW格式镜像相比,QCOW2格式有如下几个特性:

    • 支持更小的磁盘占用。
    • 支持写时拷贝(CoW,Copy-On-Write),镜像文件只反映底层磁盘变化。
    • 支持快照,可以包含多个历史快照。
    • 支持压缩和加密,可以选择ZLIB压缩和AES加密。
  • VMDK是VMware创建的虚拟硬盘格式。一个VMDK文件代表VMFS(云服务器文件系统)在云服务器上的一个物理硬盘驱动。

  • VHD是微软提供的一种虚拟硬盘文件格式。VHD文件格式可以被压缩成单个文件存放到宿主机的文件系统上,主要包括云服务器启动所需的文件系统。微软在Windows Server 2012中的Hyper-V引入的一个新版本的VHD格式,称为VHDX。与VHD格式相比,VHDX具有更大的存储容量。它在电源故障期间提供数据损坏保护,并且优化了磁盘结构对齐方式,以防止新的大扇区物理磁盘性能降级。
  • vdi(Virtual Disk Image)是Oracle的VirtualBox虚拟机中的存储格式
阅读全文 »

k8s入门教程十五:使用ceph实现storageclass动态存储

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

简介

从上文我们可知,虽然K8S提供了PVC的方式进行存储的便利性,但是PV的创建还是要手工的,使用起来不是很方便,在k8s 1.4以后,kubernetes提供了一种更加方便的动态创建PV的方式,即StorageClass。使用StorageClass时无需预先创建固定大小的PV来等待使用者创建PVC使用,而是直接创建PVC即可使用。

本文主要使用Rook搭建一个ceph集群,然后使用StorageClass来直接创建PVC。

Rook与ceph

Rook 是基于Kubernetes之上,提供一键部署存储系统的编排系统。Rook 将存储软件转变成自我管理、自我扩展和自我修复的存储服务,通过自动化部署、启动、配置、供应、扩展、升级、迁移、灾难恢复、监控和资源管理来实现。Rook 底层使用云原生容器管理、调度和编排平台提供的能力来提供这些功能。

阅读全文 »

k8s入门教程十四:安全与RBAC

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

简介

Kubernetes 作为一个分布式集群的管理工具,保证集群的安全性是其一个重要的任务。API Server 是集群内部各个组件通信的中介,也是外部控制的入口。所以 Kubernetes 的安全机制基本就是围绕保护 API Server 来设计的。Kubernetes 使用了认证(Authentication)、鉴权(Authorization)、准入控制(Admission Control)三步来保证API Server的安全。

阅读全文 »

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 最小的单元。

阅读全文 »
12…5
wumingx

wumingx

88 日志
7 分类
61 标签
RSS
GitHub E-Mail
闽ICP备19024148号 © 2021 wumingx | 964k | 14:37
由 Hexo 强力驱动 v3.8.0
|
主题 – NexT.Gemini v7.1.1
|
0%