k8s 集群部署尝试

news/2024/10/19 11:42:10/

K8S 部署方式有很多,有的方式不太友好,需要注意很多关键点,有的方式对小白比较友好,部署简单方便且高效

二进制源码包的部署方式

使用 二进制源码包的方式部署会比较麻烦,大概分为如下几步:

  • 获取源码包
  • 部署在 master 节点和 worker 节点上
  • 启动相应节点的关键服务

master 节点上

api-server ,分布式存储 例如 etcd,scheduler,controller manager

woker 节点上

kubelet,kube-proxy,docker

在 K8S 中,各个组件之间互相访问都是建议通过证书进行访问的,所以我们也需要生成相应的证书

  • 生成证书

例如 HTTP 的,HTTPS 的

涉及的组件和工具比较多,我们可以后续对 K8S 比较熟之后,再来尝试源码包的方式

使用 kubeadm 方式部署

官方是推荐使用 minikube 来部署,其实他也是通过 kubeadm 来部署的,使用 kubeadm 的部署方式就相对简单,不过步骤也是不少,有:

  • 需要安装 kube 对应的软件,kubelet,kubeadm,kubectl
  • 初始化整个 K8S 集群
  • 添加节点到集群中

执行上述 3 步,我们就可以将 K8S 集群搭建部署起来

  • 生成证书是自动的,不需要我们去干预
  • master 节点是用来管理集群容器的,所有的容器都是运行在 master 节点中,worker 节点是用来执行任务的
  • 关于容器镜像的获取

我们可以直接通过谷歌下载镜像,或者是通过国内阿里云来下载镜像

点我查看 kubeadm

基础环境准备

准备 3 台虚拟机,买云服务器也是可以的,定义好主机名

  • master
  • node1
  • node2

可以这么设置主机名

hostnamectl set-hostname master

hostnamectl set-hostname node1

hostnamectl set-hostname node2

可以通过 hostname 查看主机名

# hostname
master

安装 docker

可以查看我之前的 docker 文章 【Docker 系列】docker 学习 一,Docker的安装使用及Docker的基

需保证 master 节点和 worker 节点的 docker 版本一致,如:

需要关闭防火墙

// 查看防火墙的当前状态
sudo ufw status// 启用和禁用防火墙
sudo ufw enable
sudo ufw disable// 禁用防火墙并删除所有防火墙规则
sudo ufw reset

关闭 selinux

sudo setenforce 0 
或者
vim /etc/selinux/config
将 SELINUX 设置为 permissive

禁用 swap

sudo swapoff -a

安装 kubeadm 等工具

点我查看参考地址

开始安装 kubeadm、kubelet、kubectl 工具

  • 先安装 k8s 的源文件
sudo apt-get update && sudo apt-get install -y apt-transport-https curlsudo curl -s https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add -sudo tee /etc/apt/sources.list.d/kubernetes.list <<-'EOF'
deb https://mirrors.aliyun.com/kubernetes/apt kubernetes-xenial main
EOF
  • 查看 kubeadm 可用版本,选一个合适的

# apt-cache madison kubeadm

这里我们就安装最新的版本吧

// 安装最新版本
# shell sudo apt-get install -y kubelet=1.22.4-00 kubeadm=1.22.4-00 kubectl=1.22.4-00// 设置标签
# sudo apt-mark hold kubelet=1.22.4-00 kubeadm=1.22.4-00 kubectl=1.22.4-00// 设置开启启动 kubelet 并 运行 kubelet
# sudo systemctl enable kubelet && sudo systemctl start kubelet

我们简单的运行一下 kubelet 可以看到版本安装是正确的

image-20211120222647806

可是 kubelet 本应该是在后台就会启动的 ,为什么会启动异常呢 , 我们可以查看官方文档,得知需要配置 cgroup 驱动程序

在本地创建一个 yaml 文件,kubeadm-config.yaml

配置上自己的 kubelet 的版本 v1.22.4

kind: ClusterConfiguration
apiVersion: kubeadm.k8s.io/v1beta3
kubernetesVersion: v1.22.4
---
kind: KubeletConfiguration
apiVersion: kubelet.config.k8s.io/v1beta1
cgroupDriver: systemd

执行命令 kubeadm init --config kubeadm-config.yaml

若发现有如下报错,则是因为我们的机器 CPU 的核数小于 2 ,kubeadm 要求 我们的环境 CPU 需要是 2 个 ,赶紧换一个配置高一点的机器吧

image-20211120223723183

若配置没有异常,CPU 核数够,那么将会执行成功

今天就到这里,学习所得,若有偏差,还请斧正

欢迎点赞,关注,收藏

朋友们,你的支持和鼓励,是我坚持分享,提高质量的动力

好了,本次就到这里

技术是开放的,我们的心态,更应是开放的。拥抱变化,向阳而生,努力向前行。

我是阿兵云原生,欢迎点赞关注收藏,下次见~
更多的可以查看 零声每晚八点直播:https://ke.qq.com/course/417774


http://www.ppmy.cn/news/433122.html

相关文章

深入了解模板知识(c++)

前言 在c中模板是很重的&#xff0c;泛型编程就是模板最好的体现&#xff0c;模板的出现就是为了更好的复用代码&#xff0c;有了它&#xff0c;我们不必写各种逻辑相同只是逻辑中的数据的类型的不同的代码&#xff0c;使得我们编写代码变得更加高效&#xff0c;下面让我们一起…

哪个星座的心肠最硬?

了解查询星座运势&#xff0c;关注“去问”就可以了。善良是一种优秀的品质&#xff0c;但有时候太过善良反而会成为被人利用的软肋&#xff0c;此时就需要学着让自己的心肠变硬&#xff0c;并且变得更加坚毅才不会被人欺负。那么&#xff0c;在十二星座中&#xff0c;有哪些星…

涌html编写星空图,canvas实现十二星座星空图

效果如下&#xff1a; 代码如下&#xff1a;canvas星座 * { margin: 0; padding: 0; } #box{ margin:10px 0 0 10px;; } input{ outline: none; font-size:16px; } p{ margin-bottom: 10px } input[typedate]{ height:36px; text-indent:10px; } input[typebutton]{ background…

Rasa使用——以星座运势为case

经过两周的摸索和实验&#xff0c;今天终于把星座运势推进到最后的测试阶段。尽管跑通一个demo会觉得rasa非常简单&#xff0c;但完成一个function&#xff0c;从分离不同的intent&#xff0c;对话框架设计&#xff0c;设置rasa pipeline&#xff0c;具体月份的读取&#xff0c…

用python来抓取qq空间好友星座和年龄等信息

############## 绘制星座信息图表 获取性别信息、绘制图表 ######### import json import requests from lxml import etree import pandas as pd import pygal import pickle ################################################################# ################ part 1…

12星座的出生年月日性格_十二星座的日期和性格特点

展开全部 水瓶座(01月e68a84323131333532363134313032313635333133343134633521日─02月19日) 水瓶座的人很有创新精神&#xff0c;思想上很多时候比较大胆&#xff0c;赋予想象所以水瓶座的人大多数比较聪慧&#xff0c;有点刀子嘴豆腐心吧&#xff01; 双鱼座(02月20日─03月…

java测试输入星座匹配_用java编一个程序能通过用户输入的生日判断用户的星座。请大神们给点提示或者思路吧。规定不能自定义方法...

展开全部 既然不允许用其他的方式&#xff0c;那就直接e69da5e887aa3231313335323631343130323136353331333335303465上代码吧....public static void main(String[] args) { int point -1; String[] str {"白羊","金牛","双子","巨蟹&qu…

地耀日12星座

地耀日12星座 好像大概有下列这些&#xff0c;记不清楚了 壁虎星座 麻雀星座 射水鱼星座(斗鱼) 氢原子星座 水分子星座 COMSCI星座 紫水晶星座 土星神星座 马克思星座 爱因斯坦星座 藤本科植物星座 其它的&#xff0c;好像记不清楚了。。…