[云原生 - Kubernetes】自建高可用k8s集群前端概念和操作(18)

发布于:2024-10-24 编辑:匿名 来源:网络

自建高可用k8s集群前端概念和操作1.内核升级3.10内核在大规模集群下不稳定升级内核到4.19+ 代码语言:javascript copy # 查看内核版本 uname -sr # 0. 升级软件包,不升级内核 yum update -y --exclude=kernel*# 1. 下载公钥 rpm - -import -Uvh 安装镜像加速 yum install -y yum-plugin-fastestmirror# 3.仓库启用后,列出可用的内核相关包: yum --disablerepo="*" --enablerepo="elrepo-kernel" list available kernel-lt: long term support: 长期支持版本 kernel-ml: mainline stable: 主线稳定版本# 4. 选择自己的版本安装 5.4.1.el7.elrepoyum --enablerepo=elrepo-kernel install -y kernel-lt# 5.查看内核 uname -sr#查看内核位置 awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfgCentOS Linux 7 Rescue 0a0b6fe79acece (5.4.1.el7 .elrepo.x86_64) #0th CentOS Linux (5.4.1.el7.elrepo.x86_64) 7 (Core) ##我们的是第 1 个 CentOS Linux (3.10.0-.el7.x86_64) 7 (Core)CentOS Linux ( 0-rescue-cc2c86fe41e6a2ff6dc5d5daa) 7 (Core)# 6. 重新创建内核配置。grub2-mkconfig -o /boot/grub2/grub.cfg# 确认内核位置,修改默认内核# 7、修改并使用默认内核 vi /etc/default/grub# 将 GRUB_DEFAULT 设置为 0,代表GRUB初始化页面 第一个内核将作为默认内核 # 然后重新组织内核 grub2-mkconfig -o /boot/grub2/grub.cfg# 8. 重启reboot# 9. 检查中的uname -r 是否已更改为nf_conntrack kernel 4.19+版本 nf_conntrack_ipv4 ,4.18以下使用nf_conntrack_ipv4:sysctl -a 可以查看所有内核参数 2. k8s集群架构 k8s集群架构:master+node master:一旦宕机,k8s集群不可用。

但该节点上已运行的其他 Pod 可能仍在运行。一般也可以提供服务。

所有数据都保存到etcd(有状态)(存储数据的键值库。CP有保证),类似于ZK。

etcd可能会取代zk CAP:C一致性(6个redis,访问任何redis都可以得到相同的数据):A可用性; P分区容错。 Raft:一致性协议 中文动画:Raft分布式共识算法动画演示 Leader选举:Leader选举 Log Replication*日志复制。

筏一致集群最多允许 n/2(无论其余)机器,6/2 = 3(大多数幸存[n/2])和奇数机器(很快投票成功)。领导者可以通过多轮选出。

心跳速度决定了集群的一致性速度。 50ms 只要多数节点直接告诉leader节点日志已经生成了。

领导认为这次行动成功。 P 分区容错 一旦分区,就会出现裂脑问题。

如果出现多个领导者,他们将服从大多数节点所服从的领导者。除了etcd之外,k8s集群是无状态的。

3. cfssl 的使用 CFSSL 是 CloudFlare 的开源 PKI/TLS 工具。 CFSSL 包括一个命令行工具和一个用于签名、验证和捆绑 TLS 证书的 HTTP API 服务。

用Go语言编写。 Github地址:浏览kylw.6.com: 1.假冒网站直接使用6.com证书。

浏览器会根据这个CA组织暴露给世人的公钥(货币检测器(公钥))来解密证书,看看它属于哪个网站。如果与证书不符,则直接返回。

2、自制证书:浏览器会直接提示不安全。(未注册,无法联系法人) 1、集群相关证书类型 客户端证书:服务端用于对客户端进行认证,如etcdctl、etcd proxy、fleectl、docker客户端 服务端证书:服务端、客户端使用用这个来验证服务端身份,比如docker server、kube-apiserver对等证书:双向证书,用于etcd集群成员之间的通信。

证书根据认证对象可以分为三类:服务器证书server cert、客户端证书client cert、对等证书peer cert(表示既是服务器证书又是客户端证书。kubernetes集群中需要的证书类型如下:etcd节点需要标识它们所服务的服务器证书,也需要客户端证书来与etcd集群中的其他节点进行交互,当然,你可以单独指定2个证书,也可以使用对等证书,主节点需要识别 apiserver 服务的服务器证书,还需要客户端证书才能连接到 etcd 集群,这里,对等证书 kubectl calico kube-proxy 只需要客户端证书,因此证书中的主机字段。

request 可以为空 kubelet 证书比较特殊,不是手动生成的,是通过node节点的TLS BootStrap向apiserver请求的,由master节点的controller-manager自动颁发的。它包含客户端证书和服务器证书。

2、使用简单 2.1.创建CA配置文件,配置证书生成策略。 ,规定CA可以颁发什么类型的证书 代码语言:javascript copy vim /opt/ssl/k8sca/ca-config.json 代码语言:javascript copy { "signing": { "default": { "expiry": "0h " }, "配置文件": { "kubernetes": { "用法": [“签名”,“密钥加密”,“服务器身份验证”,“客户端身份验证”],“到期”:“0h”} } }}2.2。

创建 CA 证书签名请求 代码语言:javascript copy vim /opt/ssl/k8sca /ca-csr.json 代码语言:javascript copy {"CN": "kubernetes","key": { "algo": "rsa", "size": },"names": [ { "C": " CN", "L": "北京", "O": "kubernetes", "ST": "北京", "OU": "kubernetes “ } ]}2.3。生成生成CA所需的CA和私钥文件ca-key.pem(私钥)和ca.pem(证书),还生成ca.csr(证书签名请求)用于交叉签名或重新签名代码语言:javascript copy $ cd /opt/ssl/k8sca/$ cfssl gencert -initca ca-csr.json | cfssljson -bare ca$ lsca-config.json ca.csr ca-csr.json ca-key.pem ca。

pem3、cfssl 使用 CFSSL。它包括: 定制的 TLS PKI 工具 cfssl 程序,它是使用 CFSSL 包的规范命令行实用程序。

multirootca 程序,它是可以使用多个签名密钥的证书颁发机构服务器。 mkbundle 程序用于构建证书池捆绑包。

cfssljson 程序,它从 cfssl 和 multirootca 程序获取 JSON 输出,并将证书、密钥、CSR 和捆绑包写入磁盘。安装:到官网下载cfssl-certinfo_linux-amd64 cfssljson_linux-amd64 cfssl_linux- amd64 三组件代码语言:javascript copy#下载核心组件 wget +x cfssl*#批量重命名为`ls cfssl*`中的名称;执行 mv $name ${name%_1.5.0_linux_amd64}; done#Move to File mv cfssl* /usr/bin4、证书规划 5、证书生成和ca配置 客户端证书:用于服务器认证客户端,如etcdctl、etcd代理、fleectl、docker客户端 服务器证书:服务器使用,客户端这个验证服务端的身份,比如docker server,kube-apiserver对等证书:双向证书,用于etcd集群成员之间通信,创建ca配置文件(ca-config.json),相当于证书颁发机构“ca-config”的工作规章制度.json”:可以定义多个profile,分别指定不同的过期时间、使用场景等参数;稍后签署证书时使用某个配置文件; “signing”:表示该证书可以用来签署其他证书;生成的ca.pem证书中CA=TRUE; "server auth" :表示客户端可以使用这个CA来验证服务器提供的证书; “client auth”:表示服务器可以使用这个CA来验证客户端提供的证书;代码语言:javascript copy vi ca-config.json 代码语言:javascript copy { "signing": { "default": { "expiry": "0h" }, "profiles": { "server": { "expiry": "0h", "usages": [ "签名", "密钥加密", "服务器身份验证" ] }, "客户端": { "expiry": "0h", "usages": ["signing", "key encipherment", "client auth" ] }, "peer": { "expiry": "0h", "usages": [ "signing", "key encipherment", "server auth", "client auth" ] }, "kubernetes": { "expiry": "0h", "usages": [ "签名", "密钥加密", "服务器身份验证", "客户端身份验证" ] }, "etcd": { "到期": "0h", "用法": [ "signing", "key encipherment", "server auth", "client auth" ] } } }}csr.json 我们自己准备证书申请请求证书颁发机构将根据我们的要求颁发证书。

代码语言: javascript copy cfssl print-defaultscfssl print-defaults csr #使用该命令打印模板 代码语言: javascript copy { "CN": "example.net", //浏览器验证该字段是否合法,通常域名非常重要。 “主机”:[“example.net”,“密钥”:{“algo”:“ecdsa”,“大小”:},“名称”:[{“C”:“ US", "ST": "CA", "L": "San Francisco" } ]}创建 ca 证书签名 (ca-csr.json) "CN": Common Name ,作为请求的用户从证书中提取此字段姓名(用户名);浏览器使用该字段来验证网站是否合法; “O”:组织,从证书中提取该字段作为请求用户所属的组(Group);这两个参数在后面kubernetes开启RBAC模式的时候非常重要,因为需要设置kubelet、admin等角色权限,所以在配置证书的时候一定要正确配置。

这个后面部署kubernetes的时候会解释。 “etcd中这两个参数意义不大,按照配置即可。

" 代码语言:javascript copy vi ca-csr.json 代码语言:javascript copy { "CN": "SelfSignedCa", "key": { "algo": "rsa", "size": }, "names": [ { "C": "CN", "L": "shanghai", "O": "cfssl", "ST": "shanghai", "OU": "System" } ]} 生成ca证书和私钥代码语言: javascript copy cfssl gencert -initca ca-csr.json | cfssljson -bare ca -# ca.csr ca.pem (ca 公钥) ca-key.pem (ca 私钥,请妥善保管) 创建 etcd 证书签名 ( etcd -csr.json) 代码语言:javascript copy vi etcd-csr.json 代码语言:javascript copy { "CN": "etcd", "key": { "algo": "rsa", "size": }, " 名称": [ { "C": "CN", "L": "上海", "O": "etcd", "ST": "shanghai", "OU": "System" } ]} 代码语言: javascript copy # 生成etcd证书 cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=etcd etcd-csr.json | cfssljson -bare etcd#etcd.csr etcd-csr.json etcd-key.pem(etcd 私钥)etcd.pem(etcd 公钥)创建kubernetes 证书签名 (kubernetes-csr.json) 代码语言:javascript copy vi kubernetes-csr.json 代码语言:javascript copy { "CN": "kubernetes", "key": { "algo": "rsa", "size ": }, "names": [ { "C": "CN", "L": "上海", "O": "kubernetes", "ST": "上海", "OU": "系统" } ]} 代码语言:javascript copy # 生成k8s证书 cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=kuberneteskubernetes-csr.json | cfssljson -bare kubernetes# kubernetes.csr kubernetes-key.pem kubernetes.pem 最终验证证书合适 代码语言:javascript copy openssl x-in ca.pem -text -noout openssl x-in etcd。

[云原生 - Kubernetes】自建高可用k8s集群前端概念和操作(18)

站长声明

版权声明:本文内容由互联网用户自发贡献,本站不拥有所有权,不承担相关法律责任。如果发现本站有涉嫌抄袭的内容,欢迎发送邮件 举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。

标签:

相关文章

  • 19 个月拉锯战,诺基亚终于完成对阿朗 100% 的股权收购

    19 个月拉锯战,诺基亚终于完成对阿朗 100% 的股权收购

    经过19个月的拉锯战,诺基亚最终完成了对阿尔卡特朗讯100%股份的收购。 ”)% 股权收购。 全面接管阿尔卡特朗讯后,诺基亚将简化两家公司的架构并降低运营成本,并带来新客户在新领域的通信连接需求。 此次收购对于诺基亚来说至关重要。 自2016年正式退出手机市场以来,诺基亚

    06-18

  • 雷诺-日产联盟与微软共同开发Next 代智能网联汽车系统

    雷诺-日产联盟与微软共同开发Next 代智能网联汽车系统

    据外媒近日报道,雷诺-日产联盟与微软签署了全球合作协议,并宣布将开展未来将开展多项深度合作。 在车联网、自动驾驶技术等领域全面提升消费者的驾驶体验。 双方宣布未来将联合开发基于微软Azure云平台的新一代智能网联汽车系统。 通过更加人性化的导航、持续的维护措施、各

    06-17

  • 专访苹果COO杰夫威廉姆斯和健康团队:科技应该改善健康的各个方面

    专访苹果COO杰夫威廉姆斯和健康团队:科技应该改善健康的各个方面

    Apple Watch的起源可以追溯到9年前。 那一年,苹果启动了内部志愿者招聘活动。 对于总部以技术研发为主的科技公司来说,内部员工参与产品测试是很常见的。 11万人的庞大员工数量,可以提供技术足够多样化的测试样品。 但这个测试工作完全是一件苦差事。 下班后,苹果员工需要

    06-21

  • 国内首家宠物大数据服务商栖遁宠物完成600万元天使轮融资

    国内首家宠物大数据服务商栖遁宠物完成600万元天使轮融资

    投资界(ID:pedaily)7月14日报道,国内首家宠物大数据平台栖遁宠物中国,于今年6月初完成了1万元天使轮融资。 据悉,本轮投资由北京知名天使投资人领投。 据悉,“耀明宠物”目前正在筹备下一轮A轮融资,并已开始接触新互联网巨头投资机构。 预计今年6月完成下一轮融资。

    06-18

  • MWC 2019已进入第二天,有哪些值得关注的亮点?

    MWC 2019已进入第二天,有哪些值得关注的亮点?

    MWC 已进入第二天。 大会开幕前或大会开始前两天,正是厂商集中展示新品的“好时机”。 也是各种国际会议的“例行公事”,比如CES、CeBIT等大型消费电子展会。 未来两天,MWC将进入“展会”时刻。 巴塞罗那当地时间第二天发布的产品也值得大家关注。 雷锋网对几家大型厂商做了

    06-18

  • 23年医疗投资,老将宋赫的“中场战争”

    23年医疗投资,老将宋赫的“中场战争”

    罗飞的投资生涯始于20多年前。 20世纪90年代,中国本土风险投资开始萌芽。 2016年,罗飞与北大校友、宝安集团合伙人厉伟成立了深港产学研创业投资公司,即松鹤创投的前身。 当时,深圳证券交易所成立不久,风险投资在国内还是个新鲜事物,风险投资机构在深圳如雨后春笋般涌现

    06-17

  • 智能手机的电源键正在被废弃,因为

    智能手机的电源键正在被废弃,因为

    键被认为是第二次工业革命后人类进入电气化时代的产物。 其目的是为人们与电器交互提供一种简单明了的方式,其功能只是发送1或0来控制开关。 或者通俗地说,这个按钮也可以称为电源开关。 这种诞生于19世纪中叶的产品,一直延续到21世纪。 开关的概念已从控制灯光扩展到几乎所

    06-21

  • 企业级研发管理工具ONES获数千万美元B轮融资

    企业级研发管理工具ONES获数千万美元B轮融资

    据投资界12月24日消息,企业级研发管理工具ONES近日完成数千万美元B轮融资由嘉裕基金领投的融资。 晨报创投、华创资本继续投资。 创始人王颖奇表示,本轮融资后,ONES将探索产品深度,提升服务能力,帮助企业更好更快地推出产品。 ONESONES是一站式研发项目管理平台。 其目标

    06-18

  • AGI快来了!人大多模态模型首次实现自主更新,照片视频生成超越Sora

    AGI快来了!人大多模态模型首次实现自主更新,照片视频生成超越Sora

    AGI(人工智能)是整个AI行业的圣杯。 前OpenAI 首席科学家 Ilya Sutskeve去年表达了一个观点:“只要我们能够很好地预测下一个代币,我们就可以帮助人类实现AGI。 ”图灵奖得主、深度学习之父 Geoffrey Hinton、OpenAI CEO Sam Altman 认为,AGI 将在十年内甚至更早到来。 A

    06-21

  • 感动奥地利副总理,宝峰魔镜启动国际合作

    感动奥地利副总理,宝峰魔镜启动国际合作

    一年一度的维也纳新年音乐会是全球出席人数最多的音乐会,也是无数中国乐迷心中的盛典。 很快,您将无需远渡重洋前往维也纳。 您只需在家戴上暴风镜,即可体验沉浸在全景中的维也纳音乐会现场。 昨天,暴风视频与奥地利联合推出奥地利频道。 暴风视频大王副总裁刚刚现场向奥地

    06-18

  • 迅青科技完成Pre-A轮融资,梅花天使领投

    迅青科技完成Pre-A轮融资,梅花天使领投

    据投资界2月22日消息,迅青科技先后完成梅花天使领投、铭笙资本、银河创投跟投的天使轮融资资本投资Pre-A轮融资,具体金额尚未披露。 迅庆成立于2006年,主要利用城市配送物流SaaS系统,为医药、生鲜、快消品等行业的企业客户及第三方物流公司优化同城物流整体成本。 其核心

    06-17

  • 在线学习平台Preply完成1000万美元融资

    在线学习平台Preply完成1000万美元融资

    据投资界3月31日消息,在线学习平台Preply获得1万美元融资。 本轮融资由 Hoxton Ventures 领投,Point Nine Capital、All Iron Ventures、The Family、EduCapital 和 Diligent Capital 跟投。 一些个人天使投资人也参与其中,包括Booking.com的ArthurKosten、Upwork前首席执

    06-17