普通视图

发现新文章,点击刷新页面。
昨天以前收藏

《仓央嘉措》

作者 Escape
2024年5月6日 20:30

带你走进仓英嘉措的传奇人生。

仓央嘉措,别名为阿旺却扎嘉措,旧译仓洋嘉错,是藏传佛教格鲁派的第六世达赖喇嘛及第一世达克布呼图克图。他也是一位西藏诗人,是历代达赖喇嘛中最富传奇色彩的人物。

五世达赖喇嘛圆寂后,摄政桑结嘉措为维护西藏稳定,长期隐瞒五世达赖的死讯长达十五年之久,直到 1688 年才认定仓央嘉措为其转世。1697 年仓央嘉措在拉萨坐床。1705 年,摄政桑结嘉措与和硕特汗国的拉藏汗发生冲突,拉藏汗率兵入侵西藏,杀死桑结嘉措。翌年,拉藏汗拒绝承认仓央嘉措的合法地位,将其逮捕送往北京,途中于青海湖附近失踪,可能遭到谋杀。

《仓央嘉措》读书笔记


1. 书籍评分

🙋‍♀️ 总结感悟:记录你的阅读感悟!

阅读状态书名作者个人评分推荐指数
📓《仓央嘉措✍🏼 高平🎟 个人评分:8.0👍🏼👍🏼👍🏼👍🏼

2. 思考总结

记录摘抄:书中很多句子和自己内心的感悟,可以让你明白很多知识边界!

  • 仓央嘉措诞生

信仰是会改变的……信教不信教,信这个教还是信那个教,都是达官贵人们定出来的,老百姓不过是一盘石磨,谁来推都得转啊……

  • 风从家乡吹来

长叹了一口气,又在想那个老问题:穿袈裟的人越来越多了,但是真正懂得佛学的人又有几个?真正为了超度众生的又有多少?

  • 被杀的和嫁人的

都说是佛爷决定着人们的命运,而佛爷的命运又是谁决定的呢?众生啊,你们在羡慕着我,可知道我在羡慕着你们吗?

  • 贵族小姐

拉萨在松赞干布以前,据说是一片沼泽,沼泽的中心有一个湖,藏语叫卧措。文成公主来到西藏以后,亲自在湖上选点、设计,填土建寺。文成公主根据五行相承相克的说法,建议松赞干布用白山羊背土填湖。因为藏语把白山羊叫“惹”,把土叫“萨”,所以建起的寺庙被称为“惹萨”,这就是大昭寺最初的名字。后来藏语又叫觉卧康,也叫惹萨楚那祖拉康,即拉萨神变殿或显灵殿的意思。接着,由于香火的旺盛,政治、经济、文化的发展,在寺周围出现了许多新的建筑,形成了市区。于是这座新城也就叫作“惹萨”,当时的汉文译作“逻些”。逻些逐渐成为佛教圣地,以后便改称为“拉萨”了,因为“拉萨”在藏语中就是“圣地”的意思。

他们祈求什么?无非是希望避免今世的厄运,减少来世的贫苦。他暗中叹息了一声,“这真是用头来做脚的事情!”

  • 默思与退戒

你们向我祈求幸福,我的幸福又向谁去祈求呢?

  • 大昭寺前的恩仇

第巴桑结和拉藏汗的手下人,都有背叛旧主、投靠新主的政治赌徒出来表演。这些人的心中,没有国家,没有民族,甚至也没有父母,更没有是非之分;但他们都有强烈的爱憎——爱自己、憎别人。因此,他们才永远用两只腿交替地走着背叛与投靠之路。

雨过天晴,谁还记得雨伞?白天来了,谁还想到灯光?

  • 离开哲蚌寺

我本来不是达赖,是一些与我不相干的人让我当了达赖,又是另一些与我不相干的人不让我当达赖;想当,不想当,怎样当,不能怎样当,都得由别人决定。这一切,都是如此地不由自主!我不是骡马,为什么要由别人牵着走?我不是牦牛,为什么要由别人赶着走……他想流泪,但是他已经没有泪水了。

  • 唱歌的牧羊女

成千上万的信徒把我尊为至高无上的活佛,祈求我的祝福,期望我来改变他们悲苦的命运,唉,可怜的众生!你们哪里知道,我连自己的命运也掌握不了啊!我何时才能走出这厄运的峡谷?

  • 洗温泉

人为什么要有区别?而且要将种种区别用衣服显示出来,同样的肉体,穿着袈裟是僧人,穿着绸缎是富人,穿着破衣是乞丐,穿着盔甲是武士……同


3. 个人思考

记录你的思考:记录你的思考过程,记录你的思考感悟!

在我很小的时候,我就知道仓央嘉措这个人的存在了。但是,当时仅限于知道他的一些诗歌而已。这个月无意在读书软件上面读到了这本书,大概三四天时间就读完了,确实从中科普到了一些知识。比如:关于西藏佛教的起因和一些历史事件、关于印度佛教的发展史、关于不同分支佛教的不同教义、西藏的达赖和班禅的由来和金瓶掣签制度等等。而这些内容,都不是书中讲述的,而是自己感兴趣之后科普到的。

关于仓央嘉措的一生确实是悲惨的一生,除了少时得到的自由和幸福之外,其他的一切都是被他人所控制和安排的。住在布达拉宫,身穿锦罗服饰,但是掩盖不住的向往自由、向往幸福的心。但是,突如其来的达赖头衔,让他没办法变成一个普通人,只能身处风暴之中。

其实,古往今来都是一样的。在真正统治者眼里,普通人的一切对他们来说都不值一提,视如草芥。而作为普通人,我们管不了那么多,我们只需要安安静静的做自己,守住自己幸福就可以了。

开箱即用的Web服务器

作者 Escape
2022年8月1日 20:50

声明:文章部分内容转自 HelloGitHub 微信公众号!

众所周知,Web 服务器是 Web 开发中不可或缺的基础服务,在开发中经常会用到。耳熟能详的开源 Web 服务器有久负盛名的 Apache、性能强劲的 Nginx。而我们今天要介绍的开源项目是采用 Go 编写的 Web 服务端“后起之秀”:Caddy  它拥有下载无需安装就能用、零配置实现 HTTPS 等特点,从而在强者如云的 Web 服务器中占据了一席之地。

开箱即用的Web服务器

在这个 HTTPS 必选的时代,Caddy 凭借无需额外配置自动 HTTPS,分分钟完成 HTTPS 站点搭建,使它成为了中小型 Web 服务的首选服务器。Caddy 深受开源爱好者们的喜爱,2014 年开源至今共收获了 4.2 万颗星。

开箱即用的Web服务器


1. Caddy 功能介绍

Caddy 是一个强大的、可扩展的平台,可以为您的站点、服务和应用程序提供服务。

使用 Caddy 可以在 LinuxMacWindows 上快速部署 http(s) 站点或反向代理服务。支持:

  • HTTP/1.1HTTP/2
  • 同时接受 HTTPS 自动签发和手动管理
  • 虚拟主机 (多个站点工作在单个端口上)
  • 原生 IPv4IPv6 支持
  • 静态文件分发
  • 平滑重启/重载
  • 反向代理 (HTTPWebSocket)
  • 负载均衡和健康性检查
  • Markdown 渲染
  • 文件浏览服务
  • 等等

与传统的 Nginx 或者 Apache 相比,Caddy 整体只有一个可执行文件,安装便捷不易出现奇怪的依赖问题,配置文件结构清晰语法简单易于上手,依托于模块化架构可以使用 Go 语言快速开发扩展模块。

  • Easy configuration with the Caddyfile
  • Powerful configuration with its native JSON config
  • Dynamic configuration with the JSON API
  • Config adapters if you don’t like JSON
  • Automatic HTTPS by default
    • ZeroSSL and Let’s Encrypt for public names
    • Fully-managed local CA for internal names & IPs
    • Can coordinate with other Caddy instances in a cluster
    • Multi-issuer fallback
  • Stays up when other servers go down due to TLS/OCSP/certificate-related issues
  • Production-ready after serving trillions of requests and managing millions of TLS certificates
  • Scales to tens of thousands of sites … and probably more
  • HTTP/1.1, HTTP/2, and experimental HTTP/3 support
  • Highly extensible modular architecture lets Caddy do anything without bloat
  • Runs anywhere with no external dependencies (not even libc)
  • Written in Go, a language with higher memory safety guarantees than other servers
  • Actually fun to use
  • So, so much more to discover

2. Caddy 工具安装

使用的是 Ubuntu 的机器,介绍自动安装和手动安装!

开箱即用的Web服务器

  • 镜像部署
# https://hub.docker.com/_/caddy$ docker pull caddy
  • 自动安装
# Debian, Ubuntu, Raspbian$ sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https$ curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o $ /usr/share/keyrings/caddy-stable-archive-keyring.gpg$ curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list$ sudo apt update$ sudo apt install caddy# Fedora, RedHat, CentOS$ dnf install 'dnf-command(copr)'$ dnf copr enable @caddy/caddy$ dnf install caddy
  • 手动编译
# Go 1.17 or newer$ git clone "https://github.com/caddyserver/caddy.git"$ cd caddy/cmd/caddy/$ go build
  • 手动下载
# https://caddyserver.com/download$ mv caddy_linux_amd64 caddy$ sudo chmod a+x caddy$ mv caddy /bin/caddy$ caddy version

通过命令行 apt 工具安装的 caddy 会自己生成部分配置文件,这种方式安装完成后会启动服务,开机自动启动。

  • 配置文件
# 服务自启动配置/lib/systemd/system/caddy.service.# 配置文件内容$ cat /lib/systemd/system/caddy.service[Service]ExecStart=/usr/bin/caddy run --environ --config /etc/caddy/CaddyfileExecReload=/usr/bin/caddy reload --config /etc/caddy/Caddyfile --force# 服务启动的主配置文件$ cat /etc/caddy/Caddyfile:80 {        # Set this path to your site's directory.        root * /usr/share/caddy        # Enable the static file server.        file_server        # Another common task is to set up a reverse proxy:        # reverse_proxy localhost:8080}
  • 二进制文件
# caddy/usr/bin/caddy

3. Caddy 简单上手

安装完成之后,简单介绍下基本的使用方式!

这里将从 Caddy 常用命令开始,再到配置讲解,最后会通过一个实际案例来展示如何用 Caddy 配置网站和上线。

  • 常用命令
$ caddyCaddy is an extensible server platform.usage:  caddy <command> [<args...>]commands:  adapt           指定配置文件 Adapts a config to Caddy native JSON  add-package     添加扩展 Adds Caddy packages (EXPERIMENTAL)  build-info      输出build信息 Prints information about this build  environ         展示环境Prints the environment  file-server     启动文件服务 Spins up a production-ready file server  fmt             格式配置文件 Formats a Caddyfile  hash-password   生成Hash密码 Hashes a password and writes base64  help            帮助 Shows help for a Caddy subcommand  list-modules    列出已安装模块 Lists the installed Caddy modules  reload          重载配置并重启 Changes the config of running Caddy instance  remove-package  删除扩展 Removes Caddy packages (EXPERIMENTAL)  reverse-proxy   启动反向代理 A quick and production-ready reverse proxy  run             启动服务(前台) Starts the Caddy process  start           启动服务(后台) Starts the Caddy process  stop            停止服务 Gracefully stops a started Caddy process  trust           添加信任 Installs a CA cert into local trust stores  untrust         删除信任 Untrusts a locally-trusted CA certificate  upgrade         升级版本 Upgrade Caddy (EXPERIMENTAL)  validate        校验配置是否合法 Tests whether a config file is valid  version         输出版本信息 Prints the versionUse 'caddy help <command>' for more information about a command.Full documentation is available at:https://caddyserver.com/docs/command-line

Caddy 的原生配置文件使用的是 JSON 格式,但是为了用户编写方便它提供了 Caddyfile 作为接口让用户可以快速配置站点信息,运行时 Caddy 会自动将 Caddyfile 的配置信息转为 JSON 配置文件。Caddyfile 所能提供功能不如 JSON 配置文件强大,但是对于不需要复杂配置的用户而言完全够用了。

  • 配置文件
# matcher代表匹配器# 如果提供则该指令将只对 matcher 描述的资源进行响应directive [<matcher>] <args...> {    subdirective [<args...>] # 子指令}
  • 文件结构

开箱即用的Web服务器


4. Caddy 简单演示

简单演示,来解释配置文件的编写以及命令工具的使用!

下面将演示如何用 Caddy 搭建站点,加深理解配置格式和命令使用。

# 目录结构.├──&nbsp;Caddyfile├──&nbsp;index.html└──&nbsp;public&nbsp;&nbsp;&nbsp;&nbsp;└──&nbsp;HG.html
<!--&nbsp;index.html&nbsp;--><!DOCTYPE html><html lang="en">  <head>    &nbsp;&nbsp;&nbsp;&nbsp;    <meta charset="UTF-8" />    &nbsp;&nbsp;&nbsp;&nbsp;    <title>Hello&nbsp;World!</title>  </head>  <body>    &nbsp;&nbsp;&nbsp;&nbsp;你好,世界!  </body></html><!--&nbsp;HG.html&nbsp;--><!DOCTYPE html><html lang="en">  <head>    &nbsp;&nbsp;&nbsp;&nbsp;    <meta charset="UTF-8" />    &nbsp;&nbsp;&nbsp;&nbsp;    <title>HelloGitHub</title>  </head>  <body>    &nbsp;&nbsp;&nbsp;&nbsp;HelloGitHub  </body></html>
# Caddyfilehttp://localhost:3000 {    basicauth /public/* {        # 匹配localhost:3000/public/*的请求为加上登陆保护        # 用户名HG密码HelloGitHub        # 密码使用 caddy hash-passowrd 指令生成        HG JDJhJDE0JGxxxBNGJt    }    # 设置当前站点根目录为当前文件夹,*表示匹配所有的请求    root * ./    templates    # 配置当前站点为静态文件服务器,可用于博客系统的搭建    file_server {        # 隐藏所有的 .git 文件        hide .git    }}:4000 {    # 配置反向代理(匹配请求转发到)    reverse_proxy /public/* http://localhost:3000}
# 启动服务$&nbsp;caddy&nbsp;run# 测试http://localhost:3000http://localhost:3000/public/HG.htmlhttp://localhost:4000

Caddy 除了简单易懂的配置文件方式,还提供了管理配置的接口。通过这些接口可以轻松实现 Web 服务器管理自动化、集成发布等高级功能。

  • POST /load  设置或替换活动配置
  • POST /stop  停止活动配置并退出进程
  • GET /config/[path]  导出指定路径的配置
  • POST /config/[path]  设置或替换对象;追加到数组
  • PUT /config/[path]  创建新对象或插入数组
  • PATCH /config/[path]  替换现有对象或数组元素
  • DELETE /config/[path]  删除指定路径的值
  • JSON 中使用 @id  轻松遍历配置结构
  • GET /reverse_proxy/upstreams  返回配置的代理上游的当前状态

开箱即用的Web服务器


5. Caddy 域名加密

从零完成 HTTPS 站点

第一步:安装,采用上面介绍的命令安装

第二步:设置域名解析地址,在购买域名的网站设置,设置 A 记录。

# 设置完生效需要几分钟,可通过下面的命令检查是否生效$ curl&nbsp;"https://cloudflare-dns.com/dns-query?name=caddy.escapelife.site&type=A"&nbsp;-H&nbsp;"accept:&nbsp;application/dns-json"

第三步:创建配置文件 Caddyfile,无需额外的开启 HTTPS 的设置。

# 域名和访问返回的内容caddy.escapelife.siterespond&nbsp;"Hello HTTPS!"

第四步:启动然后看效果

# 在同一目录下执行命令# 访问&nbsp;caddy.escapelife.site&nbsp;检验效果$ sudo caddy run

6. Caddy 容器使用

介绍容器使用 Caddy 服务的相关配置和注意事项

  • 配置信息
# Data directory(/data)$HOME/.local/share/caddy# Config directory(/config)$HOME/.config/caddy
  • Basic Usage
# The default config file simply serves files$ echo "hello world" > index.html$ docker run -d -p 80:80 \    -v $PWD/index.html:/usr/share/caddy/index.html \    -v caddy_data:/data \    caddy...$ curl http://localhost/hello world
# To override the default&nbsp;Caddyfile$ docker run -d -p 80:80 \    -v $PWD/Caddyfile:/etc/caddy/Caddyfile \    -v caddy_data:/data \    caddy
  • Automatic TLS
# its A/AAAA DNS records to public IP$ docker run -d -p 80:80 -p 443:443 -p 443:443/udp \    -v /site:/srv \    -v caddy_data:/data \    -v caddy_config:/config \    caddy caddy file-server --domain example.com
  • Building your own Caddy-based image
FROM caddy:COPY Caddyfile /etc/caddy/CaddyfileCOPY site /srv
  • Adding custom Caddy modules
FROM caddy:-builder AS builderRUN xcaddy build \    --with github.com/caddyserver/nginx-adapter \    --with github.com/hairyhenderson/[email protected] caddy:COPY --from=builder /usr/bin/caddy /usr/bin/caddy
  • Docker Compose example
version: "3.7"services:  caddy:    image: caddy:<version>    restart: unless-stopped    ports:      - "80:80"      - "443:443"      - "443:443/udp"    volumes:      - $PWD/Caddyfile:/etc/caddy/Caddyfile      - $PWD/site:/srv      - caddy_data:/data      - caddy_config:/configvolumes:  caddy_data:    external: true  caddy_config:

7. Caddy 思考总结

送人玫瑰,手有余香!

看到这里你应该对 Caddy 有了一些了解,有没有一种相见恨晚的感觉?虽然它的性能比不了 Nginx 但如果论上手的难易度,CaddyNginx 几条街!主要是默认开启 HTTPS 功能太香了,你什么都不用管就可以免费、快速、轻松开启网站 HTTPS

Kubernetes之高可用集群

作者 Escape
2020年4月25日 15:40

我们一起学习如何搭建 Kubernetes 的高可用的集群构建吧!

Kubernetes 作为近几年最具颠覆性的容器编排技术,广泛应用与企业的生产环境中,相较于前几年的 docker-swarm 的编排方式,Kubernetes 无疑是站在一个更高的角度对容器进行管理,方便日后项目的普适性,容易对架构进行扩展。

Kubernetes之高可用集群


1. 基础设置

记录在安装之前需要准备的内容和操作!

  • [1] 设置系统主机名
# 设置系统主机名和Host文件的相互解析$ hostnamectl set-hostname k8s-master$ hostnamectl set-hostname k8s-node1$ hostnamectl set-hostname k8s-node2
  • [2] 安装依赖包
# 基本包$ yum install -y \    conntrack ntpdate ntp ipvsadm ipset jq iptables \    curl sysstat libseccomp wget vim net-tools git
  • [3] 设置防火墙
# 关闭Firewall防火墙$ systemctl stop firewalld && systemctl disable firewalld# 设置空规则$ yum -y install iptables-services \    && systemctl start iptables \    && systemctl enable iptables \    && iptables -F && service iptables save
  • [4] 关闭 SELINUX
# 关闭缓存$ swapoff -a \   && sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab# 关闭安全设置$ setenforce 0 \    && sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
  • [5] 调整内核参数
# 对于K8S而言$ cat > kubernetes.conf <<EOFnet.bridge.bridge-nf-call-iptables=net.bridge.bridge-nf-call-ip6tables=net.ipv4.ip_forward=net.ipv4.tcp_tw_recycle=vm.swappiness=0 # 禁止使用swap空间vm.overcommit_memory=1 # 不检查物理内存是否够用vm.panic_on_oom=0 # 开启 OOMfs.inotify.max_user_instances=fs.inotify.max_user_watches=fs.file-max=fs.nr_open=net.ipv6.conf.all.disable_ipv6=net.netfilter.nf_conntrack_max=EOF# 使之生效$ cp kubernetes.conf /etc/sysctl.d/kubernetes.conf$ sysctl -p /etc/sysctl.d/kubernetes.conf
  • [6] 调整系统时区
# 设置系统时区为中国/上海$ timedatectl set-timezone Asia/Shanghai# 将当前的UTC时间写入硬件时钟$ timedatectl set-local-rtc 0# 重启依赖于系统时间的服务$ systemctl restart rsyslog$ systemctl restart crond
  • [7] 设置 rsyslogd 服务
# 持久化保存日志的目录$ mkdir /var/log/journal$ mkdir /etc/systemd/journald.conf.d# 配置文件$ cat > /etc/systemd/journald.conf.d/99-prophet.conf <<EOF[Journal]# 持久化保存到磁盘Storage=persistent# 压缩历史日志Compress=yesSyncIntervalSec=5mRateLimitInterval=30sRateLimitBurst= 1000# 最大占用空间10GSystemMaxUse=10G# 单日志文件最大200MSystemMaxFileSize=200M# 日志保存时间2周MaxRetentionSec=2week# 不将日志转发到syslogForwardToSyslog=noEOF# 重启服务$ systemctl restart systemd-journald
  • [8] 升级系统内核为 4.44+
# CentOS7.x系统自带的3.10.x内核存在一些Bug# 有概率会导致运行的Docker、Kubernetes等服务异常且不稳定$ rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm# 安装完成后检查/boot/grub2/grub.cfg配置文件中是否# 对应内核menuentry中包含initrd16配置,如果没有再安装$ yum --enablerepo=elrepo-kernel install -y kernel-lt# 设置开机从新内核启动$ grub2-set-default "CentOS Linux (4.4.182-1.el7.elrepo.x86_64) 7 (Core)"# 重启后安装内核源文件$ yum --enablerepo=elrepo-kernel install \    kernel-lt-devel-$(uname -r) kernel-lt-headers-$(uname -r)
  • [9] 关闭 NUMA
# 非均匀访存模型# 备份配置$ cp /etc/default/grub{,.bak}$ cp /boot/grub2/grub.cfg{,.bak}# 添加 `numa=off` 参数$ vim /etc/default/grub$ GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rhgb quiet numa=off"# 加载配置$ grub2-mkconfig -o /boot/grub2/grub.cfg

2. 服务配置

记录部署高可用的 K8S 集群构建的相关操作!

  • [1] 开启 ipvs 服务
# kube-proxy开启ipvs的前置条件# 载入指定的个别模块$ modprobe br_netfilter# 修改配置$ cat > /etc/sysconfig/modules/ipvs.modules <<EOF#!/bin/bashmodprobe -- ip_vsmodprobe -- ip_vs_rrmodprobe -- ip_vs_wrrmodprobe -- ip_vs_shmodprobe -- nf_conntrack_ipvEOF# 加载配置$ chmod 755 /etc/sysconfig/modules/ipvs.modules \    && bash /etc/sysconfig/modules/ipvs.modules \    && lsmod | grep -e ip_vs -e nf_conntrack_ipv
  • [2] 安装 Docker 软件
# 安装LVM存储$ yum install -y yum-utils device-mapper-persistent-data lvm# 安装docer-ce工具$ yum-config-manager --add-repo \    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo \    && yum update -y && yum install -y docker-ce# 修改daemon配置文件$ cat > /etc/docker/daemon.json <<EOF{  "exec-opts": ["native.cgroupdriver=systemd"],  "log-driver": "json-file",  "log-opts": {    "max-size": "100m"  }}EOF# 重启docker服务$ systemctl daemon-reload && \    systemctl restart docker && \    systemctl enable docker
  • [3] 在主节点启动 Haproxy 与 Keepalived 容器
# 导入脚本 > 运行 > 查看可用节点# Haproxy$ kubectl apply -f kube-haproxy.yml# Keepalived$ kubectl apply -f kube-keepalived.yml
  • [4] 安装 Kubeadm 工具
# 主从配置$ cat <<EOF > /etc/yum.repos.d/kubernetes.repo[kubernetes]name=Kubernetesbaseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_enabled=gpgcheck=repo_gpgcheck=gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpghttp://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpgEOF# 安装工具$ yum -y install kubeadm-1.15.1 \    kubectl-1.15.1 kubelet-1.15.1 \    && systemctl enable kubelet.service
  • [5] 初始化主节点
# 初始化主节点并加入主节点以及其余工作节点$ kubeadm config print init-defaults > kubeadm-config.yaml$ kubeadm init --config=kubeadm-config.yaml \    --experimental-upload-certs | tee kubeadm-init.log
  • [6] Etcd 集群状态查看
# 启动服务$ kubectl -n kube-system exec etcd-k8s-master01 -- etcdctl \    --endpoints=https://192.168.92.10:2379 \    --ca-file=/etc/kubernetes/pki/etcd/ca.crt \    --cert-file=/etc/kubernetes/pki/etcd/server.crt \    --key-file=/etc/kubernetes/pki/etcd/server.key cluster-health$ kubectl get endpoints kube-controller-manager --namespace=kube-system -o yaml$ kubectl get endpoints kube-scheduler --namespace=kube-system -o yaml
  • [7] 部署网络
$ kubectl apply -f kube-flannel.yml

3. 注意事项

记录在安装过程中重点或者重要的内容!

❌
❌