【k8s 系列】k8s 学习五,k8s 集群部署尝试

简介: 【k8s 系列】k8s 学习五,k8s 集群部署尝试

image.png

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

image.png

image.png

基础环境准备

准备 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的基

image.png

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

image.png

需要关闭防火墙

// 查看防火墙的当前状态
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 等工具

点我查看参考地址

image.png

开始安装 kubeadm、kubelet、kubectl 工具

  • 先安装 k8s 的源文件
sudo apt-get update && sudo apt-get install -y apt-transport-https curl
sudo 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

image.png

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


// 安装最新版本
# 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.png

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

image.png

在本地创建一个 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.png

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


相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务&nbsp;ACK 容器服务&nbsp;Kubernetes&nbsp;版(简称&nbsp;ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情:&nbsp;https://www.aliyun.com/product/kubernetes
相关文章
|
2月前
|
Kubernetes 网络协议 应用服务中间件
K8S二进制部署实践-1.15.5
K8S二进制部署实践-1.15.5
35 0
|
21天前
|
Kubernetes 搜索推荐 网络协议
使用 kubeadm 部署 Kubernetes 集群(三)kubeadm 初始化 k8s 证书过期解决方案
使用 kubeadm 部署 Kubernetes 集群(三)kubeadm 初始化 k8s 证书过期解决方案
36 8
|
2月前
|
Kubernetes 流计算 Perl
在Rancher K8s上部署Flink时,TaskManager连接不上并不断重启可能是由多种原因导致的
在Rancher K8s上部署Flink时,TaskManager连接不上并不断重启可能是由多种原因导致的
37 7
|
1天前
|
Kubernetes 应用服务中间件 nginx
K8S二进制部署详解,一文教会你部署高可用K8S集群(二)
K8S二进制部署详解,一文教会你部署高可用K8S集群(二)
|
1天前
|
Kubernetes 网络安全 数据安全/隐私保护
K8S二进制部署详解,一文教会你部署高可用K8S集群(一)
K8S二进制部署详解,一文教会你部署高可用K8S集群(一)
|
2天前
|
Kubernetes 网络协议 Python
一文教会你,如何通过kubeadm,在生产环境部署K8S高可用集群(二)
一文教会你,如何通过kubeadm,在生产环境部署K8S高可用集群(二)
|
2天前
|
Kubernetes 应用服务中间件 开发工具
一文教会你,如何通过kubeadm,在生产环境部署K8S高可用集群(一)
一文教会你,如何通过kubeadm,在生产环境部署K8S高可用集群(一)
|
6天前
|
Kubernetes 负载均衡 应用服务中间件
部署一套完整的Kubernetes高可用集群(二进制,最新版v1.18)下
部署一套完整的Kubernetes高可用集群(二进制,最新版v1.18)下
部署一套完整的Kubernetes高可用集群(二进制,最新版v1.18)下
|
6天前
|
Kubernetes 安全 前端开发
部署一套完整的Kubernetes高可用集群(二进制,最新版v1.18)上
部署一套完整的Kubernetes高可用集群(二进制,最新版v1.18)上
|
6天前
|
Kubernetes Shell 网络安全
Shell脚本快速部署Kubernetes(K8S v1.1版本)集群系统
Shell脚本快速部署Kubernetes(K8S v1.1版本)集群系统

推荐镜像

更多