jobcher

jobcher

欢迎关注

JOBCHER BLOG
Kubernetes k8s 组件
Kubernetes k8s 组件 控制平面组件(Control Plane Components) 控制平面的组件对集群做出全局决策(比如调度),以及检测和响应集群事件(例如,当不满足部署的 replicas 字段时,启动新的 pod)。 kube-apiserver API 服务器是 Kubernetes 控制面的组件, 该组件公开了 Kubernetes API。 API 服务器是 Kubernetes 控制面的前端。 etcd etcd 是兼具一致性和高可用性的键值数据库,可以作为保存 Kubernetes 所有集群数据的后台数据库。 kube-scheduler 控制平面组件,负责监视新创建的、未指定运行节点(node)的 Pods,选择节点让 Pod 在上面运行。 kube-controller-manager 运行控制器进程的控制平面组件。 cloud-controller-manager 云控制器管理器是指嵌入特定云的控制逻辑的 控制平面组件。 云控制器管理器使得你可以将你的集群连接到云提供商的 API 之上, 并将与该云平台交互的组件同与你的集群交互的组件分离开来。 Node 组件 节点组件在每个节点上运行,维护运行的 Pod 并提供 Kubernetes 运行环境。 kubelet 一个在集群中每个节点(node)上运行的代理。 它保证容器(containers)都 运行在 Pod 中。 kube-proxy kube-proxy 是集群中每个节点上运行的网络代理, 实现 Kubernetes 服务(Service) 概念的一部分。 容器运行时(Container Runtime) 容器运行环境是负责运行容器的软件。 Kubernetes 支持多个容器运行环境: Docker、 containerd、CRI-O 以及任何实现 Kubernetes CRI (容器运行环境接口)。
JOBCHER BLOG
2021年第50周记
2021 年第 50 周周记 这周完成了以下任务 搭建 hugo 博客 使用 docker 封装了 blog 搭建 k3s 环境 计划: 学习 k8s 总结:没啥好总结,刚开始写周记,就随便写一点吧 欢迎关注我的博客www.jobcher.com
JOBCHER BLOG
nginx 汇总
nginx 汇总 各类 nginx 问题汇总 安装 nginx 1 #centos 2 yum install nginx 3 #ubuntu 4 apt install nginx http 代理 正向代理 1 server { 2 listen 80; 3 server_name www.nbtyfood.com; 4 5 location / { 6 proxy_pass http://127.0.0.1:8080; 7 } 8 } 反向代理 负载均衡 1 upstream mysvr { 2 server 192.168.10.121:3333; 3 server 192.168.10.122:3333; 4 } 5 server { 6 .... 7 location ~*^.+$ { 8 proxy_pass http://mysvr; #请求转向mysvr 定义的服务器列表 9 } 10 } 热备
JOBCHER BLOG
TCP/IP详解
TCP/IP 协议 什么是 TCP/IP 协议 OSI 七层架构 TCP/IP 四层模型 协议 应用层 HTTP、SMTP、SNMP、FTP、Telnet、SIP、SSH、NFS 表示层 应用层 XDR、ASN.1、NCP、TLS、ASCII 会话层 sockets、SOCKS、PAP 传输层 传输层 TCP、UDP、RTP、SCTP 网络层 网络互连层 IP、ICMP、IPX、BGP、OSPF、RIP、IGRP、EIGRP 数据链路层 网络访问(链接)层 以太网、令牌环、HDLC、帧中继、ISDN、ATM、IEEE 802.11 物理层 调制解调器、无线电、光纤 报文结构 TCP 报文段首部格式 源端口和目的端口:各占 2 个字节,分别写入源端口和目的端口。IP 地址 + 端口号就可以确定一个进程地址 序号/序列号(Sequense Number,SN):在一个 TCP 连接中传送的字节流中的每一个字节都按顺序编号。该字段表示本报文段所发送的数据的第一个字节的序号。初始序号称为 Init Sequense Number, ISN(序号/序列号这个字段很重要,大家留个印象,下文会详细讲解) 例如,一报文段的序号是 101,共有 100 字节的数据。这就表明:本报文段的数据的第一个字节的序号是 101,最后一个字节的序号是 200。显然,下一个报文段的数据序号应当从 201 开始,即下一个报文段的序号字段值应为 201。 确认号 ack:期望收到对方下一个报文段的第一个数据字节的序号。若确认号为 N,则表明:到序号 N-1 为止的所有数据都已正确收到。 数据偏移(首部长度):它指出 TCP 报文段的数据起始处距离 TCP 报文段的起始处有多远。这个字段实际上是指出 TCP 报文段的首部长度。 保留:占 6 位,应置为 0,保留为今后使用。
JOBCHER BLOG
自建服务器内网穿透
内网穿透 文章中使用的内网穿透前提是必须具有公网 IP 的云服务器,不符合条件的同学可以跳过了。 nps 内网穿透 nps 是一款轻量级、高性能、功能强大的内网穿透代理服务器。 在公网服务器上安装 nps sever 端 1 wget https://github.com/ehang-io/nps/releases/download/v0.26.10/linux_amd64_server.tar.gz 2 tar -zxvf linux_amd64_server.tar.gz 3 sudo ./nps install 4 sudo nps start 在控制端安装 npc client 端 1 wget https://github.com/ehang-io/nps/releases/download/v0.26.10/linux_amd64_client.tar.gz 2 tar -zxvf linux_amd64_client.tar.gz 3 sudo ./npc -server=ip:port -vkey=web界面中显示的密钥 4 sudo npc start npc 安装完成可以进入 web 页面穿透端口和域名 http://localhost:8080 frps 内网穿透 frps 相对于 nps 的劣势是有断流的风险 frps 相对于 nps 的优势是对于高流量的媒体服务能够提供更可靠的支持 安装 frps 1 wget https://code.aliyun.com/MvsCode/frps-onekey/raw/master/install-frps.sh -O ./install-frps.sh 2 chmod 700 .
JOBCHER BLOG
树莓派搭建k3s
树莓派安装 k3s 1.安装 k3s 控制节点 1 curl -sfL https://get.k3s.io | sh - 2 cat /var/lib/rancher/k3s/server/node-token 工作节点 1 curl -sfL https://get.k3s.io | K3S_URL=https://myserver:6443 K3S_TOKEN=mynodetoken sh - 树莓派特别要注意一个坑,就是关于内存的问题这个之后再讲 1 k3s kubectl get nodes 2 #显示正确的节点表示完成 卸载 k3s 1 #server 节点 2 /usr/local/bin/k3s-uninstall.sh 3 #agent 节点 4 /usr/local/bin/k3s-agent-uninstall.sh 2.安装 dashboard k3s 面板 部署 Kubernetes 仪表盘 1 GITHUB_URL=https://github.com/kubernetes/dashboard/releases 2 VERSION_KUBE_DASHBOARD=$(curl -w '%{url_effective}' -I -L -s -S ${GITHUB_URL}/latest -o /dev/null | sed -e 's|.*/||') 3 sudo k3s kubectl create -f https://raw.
JOBCHER BLOG
brew 安装配置
brew 安装配置 一.安装 1.在 ubuntu 上安装 brew 1 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 2.在 centos 上安装 brew 1 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 3.在 MacOS 上安装 brew 1 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 二、使用 1.安装 wget 1 brew install wget Homebrew 会将软件包安装到独立目录,并将其文件软链接至 /usr/local 1 $ cd /usr/local 2 $ find Cellar 3 Cellar/wget/1.16.1 4 Cellar/wget/1.16.1/bin/wget 5 Cellar/wget/1.16.1/share/man/man1/wget.1 6 7 $ ls -l bin 8 bin/wget -> ../Cellar/wget/1.16.1/bin/wget 2.创建你自己的 Homebrew 包 1 $ brew create https://foo.
JOBCHER BLOG
gitlab CI/CD 的使用
gitlab CI/CD 的使用 我将使用 gitlab 的流水线自动实现 hugo blog 文章的自动发布。 一、基础知识 二、安装过程 1.安装 gitlab runner 首先需要安装 gitlab runner 进入服务器 A 安装方法: 容器部署 手动二进制文件部署 通过 rpm/deb 包部署 docker 方式安装 安装文档:https://docs.gitlab.com/runne… 1 docker run -dit \ 2 --name gitlab-runner \ 3 --restart always \ 4 -v /srv/gitlab-runner/config:/etc/gitlab-runner \ 5 -v /var/run/docker.sock:/var/run/docker.sock \ 6 gitlab/gitlab-runner 1.1 设置信息 docker exec -it gitlab-runner gitlab-runner register 非 docker 方式安装 2.1 安装 GitLab Runner 安装环境:Linux 其他环境参考:https://docs.gitlab.com/runne… 下载 1 curl -L --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.
JOBCHER BLOG
Markdown教程
Markdown 教程 参考:https://www.runoob.com/markdown
JOBCHER BLOG
感谢打赏
如果你觉得这个项目对你有帮助,并且情况允许的话,可以给我一点点支持,支持我维护下去
JOBCHER BLOG
运维知识图谱
运维图谱 云原生平台基础 Docker、Docker Compose:容器化技术 Kubernetes:大规模容器编排 Helm:云原生应用商店 Rancher: 易用的容器管理平台 KubeSphere:一站式容器云平台 OpenTracing:云原生链路追踪标准 Jaeger:云原生链路追踪实现产品 Istio:ServiceMesh下的服务流量治理 Jenkins、JenkinsX、Jenkins-BlueOcean:老牌的CI/CD平台 Gtilab/hub-CICD:Gitlab/hub自带的CICD Argo:kubernetes声明式持续集成 Nexus:Maven私库 Harbor:Docker私库 Prometheus+Granfana:监控与可视化平台 ElasticSearch+Fluentd+Kibana:日志与可视化方案 Serverless:无服务器上云方案(不用去管服务器,不是不需要服务器) SpringCloud Kubernetes:微服务上云方案 熟练掌握docker和k8s技术 devops掌握jenkins和gitlab 应用12要素 在现代,软件通常作为服务交付:称为Web 应用程序或软件即服务。十二因素应用程序是一种构建软件即服务应用程序的方法,它: 使用声明格式进行设置自动化,以最大限度地减少新开发人员加入项目的时间和成本; 与底层操作系统有一个干净的合同,在执行环境之间提供最大的可移植性; 适合部署在现代云平台上,无需服务器和系统管理; 最大限度地减少开发和生产之间的差异,实现持续部署以获得最大的敏捷性; 并且可以在不对工具、架构或开发实践进行重大更改的情况下进行扩展。 名称 英文 描述 基准代码 codebase 一份基准代码,多份部署 依赖 Dependencies 显示声明依赖关系 配置 config 在环境中存储配置 后端服务 backing services 把后端服务当做附加资源 构建,发布,运行 build,release,run 严格分离构建和运行 进程 Processes 以一个或多个无状态进程运行应用 端口绑定 port binding 通过端口绑定来提供服务 并发 concurrency 通过进程模型进行扩展 易处理 disposability 快速启动和优雅终止可最大化健壮性 开发环境和线上环境等价 Dev/prod parity 尽可能保持开发、预发布、线上环境 日志 log 把日志当做事件流 管理进程 admin processes 后台管理任务当做一次性进程处理