k8s部署的4方案

这篇具有很好参考价值的文章主要介绍了k8s部署的4方案。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

k8s(Kubernetes)是一个开源的容器编排平台,支持多种部署方式。常见的 k8s 部署方式包括:基于二进制文件、kubeadm 工具、云服务提供商、容器镜像等方式。

下面对这些 k8s 部署方式进行简要介绍:

1. 基于二进制文件的部署方式

这种方式需要手动下载和安装 k8s 组件,包括 kube-apiserver、kube-controller-manager、kube-scheduler、kubelet、kube-proxy 等组件,并手动配置参数和启动命令。适合需要自定义配置和精细控制的场景,但也需要花费更多的时间和精力进行维护和升级。

2. 使用 kubeadm 工具部署

kubeadm 是 k8s 官方推荐的工具,可以快速搭建 k8s 集群,并提供诸如更新、升级和故障修复等功能。使用 kubeadm 部署 k8s 集群通常会比较方便和快速,但需要满足一定的硬件和软件环境要求。

3. 云服务提供商的部署方式

目前市场上大多数云服务提供商都支持 k8s 部署方式,如 Amazon EKS、Microsoft AKS、Google GKE 等,可以通过这些服务快速搭建 k8s 集群,并享受云服务提供商提供的自动化运维、监控和弹性扩容等功能。

4. 使用容器镜像部署

这种方式将 k8s 组件以容器镜像的形式打包,并利用容器调度系统进行部署。适合在已经有容器编排系统的场景下使用,如 Docker-compose、Swarm、Mesos 等。

总体来说,k8s 部署方式有多种,可以根据不同的场景和需求选择合适的方式进行部署。需要注意的是,在部署 k8s 集群之前,需要对硬件和软件环境进行充分的规划和准备,以确保 k8s 集群的稳定和高可用性。

第一个部署方案指的是基于二进制文件的 k8s 部署方式。以下是一个详细的 k8s 二进制部署方案:

  1. 准备 k8s 组件

首先需要准备 k8s 组件,包括 kube-apiserver、kube-controller-manager、kube-scheduler、kubelet、kube-proxy 等组件。可以从官方网站或 GitHub 等源获取最新版本的二进制文件。

  1. 安装 kubelet 和 kube-proxy

在所有节点上安装 kubelet 和 kube-proxy 组件,并设置为开机自启动。

sudo mv kubelet /usr/local/bin/
sudo mv kube-proxy /usr/local/bin/

sudo vi /etc/systemd/system/kubelet.service
# 编辑 kubelet.service 文件,添加下面内容:
[Unit]
Description=Kubernetes Kubelet
Documentation=https://github.com/kubernetes/kubernetes

[Service]
ExecStart=/usr/local/bin/kubelet \
  --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf \
  --kubeconfig=/etc/kubernetes/kubelet.conf \
  --config=/var/lib/kubelet/config.yaml \
  --hostname-override=<NODE_IP> \
  --pod-infra-container-image=k8s.gcr.io/pause:3.5
Restart=on-failure
KillMode=process
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target

# 启动 kubelet 服务
sudo systemctl daemon-reload
sudo systemctl enable kubelet.service
sudo systemctl start kubelet.service

# 设置 kube-proxy
sudo vi /etc/systemd/system/kube-proxy.service
# 编辑 kube-proxy.service 文件,添加下面内容:
[Unit]
Description=Kubernetes Kube Proxy
Documentation=https://github.com/kubernetes/kubernetes

[Service]
ExecStart=/usr/local/bin/kube-proxy \
  --config=/var/lib/kube-proxy/config.conf
Restart=on-failure
KillMode=process
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target

# 启动 kube-proxy 服务
sudo systemctl daemon-reload
sudo systemctl enable kube-proxy.service
sudo systemctl start kube-proxy.service
  1. 安装 kube-apiserver、kube-controller-manager 和 kube-scheduler

在 Master 节点上安装 kube-apiserver、kube-controller-manager 和 kube-scheduler 组件,并设置为开机自启动。

sudo mv kube-apiserver /usr/local/bin/
sudo mv kube-controller-manager /usr/local/bin/
sudo mv kube-scheduler /usr/local/bin/

sudo vi /etc/systemd/system/kube-apiserver.service
# 编辑 kube-apiserver.service 文件,添加下面内容:
[Unit]
Description=Kubernetes API Server
Documentation=https://github.com/kubernetes/kubernetes

[Service]
ExecStart=/usr/local/bin/kube-apiserver \
  --advertise-address=<MASTER_IP> \
  --allow-privileged=true \
  --etcd-servers=https://127.0.0.1:2379 \
  --service-cluster-ip-range=10.96.0.0/12 \
  --secure-port=6443 \
  --tls-cert-file=/etc/kubernetes/pki/apiserver.crt \
  --tls-private-key-file=/etc/kubernetes/pki/apiserver.key \
  --kubelet-client-certificate=/etc/kubernetes/pki/apiserver-kubelet-client.crt \
  --kubelet-client-key=/etc/kubernetes/pki/apiserver-kubelet-client.key \
  --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname \
  --service-account-key-file=/etc/kubernetes/pki/sa.pub \
  --enable-admission-plugins=NodeRestriction,PodSecurityPolicy \
  --audit-log-maxage=30 \
  --audit-log-maxbackup=3 \
  --audit-log-maxsize=100 \
  --audit-log-path=/var/log/kubernetes/audit.log \
  --authorization-mode=Node,RBAC \
  --runtime-config=api/all \
  --allow-privileged=true \
  --requestheader-client-ca-file=/etc/kubernetes/pki/front-proxy-ca.crt \
  --proxy-client-cert-file=/etc/kubernetes/pki/front-proxy-client.crt \
  --proxy-client-key-file=/etc/kubernetes/pki/front-proxy-client.key \
  --enable-bootstrap-token-auth \
  --v=2

Restart=on-failure
KillMode=process
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target

# 启动 kube-apiserver 服务
sudo systemctl daemon-reload
sudo systemctl enable kube-apiserver.service
sudo systemctl start kube-apiserver.service

# 设置 kube-controller-manager
sudo vi /etc/systemd/system/kube-controller-manager.service
# 编辑 kube-controller-manager.service 文件,添加下面内容:
[Unit]
Description=Kubernetes Controller Manager
Documentation=https://github.com/kubernetes/kubernetes

[Service]
ExecStart=/usr/local/bin/kube-controller-manager \
  --bind-address=<MASTER_IP> \
  --leader-elect=true \
  --kubeconfig=/etc/kubernetes/controller-manager.conf \
  --service-cluster-ip-range=10.96.0.0/12 \
  --cluster-name=kubernetes \
  --allocate-node-cidrs=true \
  --use-service-account-credentials=true \
  --cluster-signing-cert-file=/etc/kubernetes/pki/ca.crt \
  --cluster-signing-key-file=/etc/kubernetes/pki/ca.key \
  --v=2

Restart=on-failure
KillMode=process
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target

# 启动 kube-controller-manager 服务
sudo systemctl daemon-reload
sudo systemctl enable kube-controller-manager.service
sudo systemctl start kube-controller-manager.service

# 设置 kube-scheduler
sudo vi /etc/systemd/system/kube-scheduler.service
# 编辑 kube-scheduler.service 文件,添加下面内容:
[Unit]
Description=Kubernetes Scheduler
Documentation=https://github.com/kubernetes/kubernetes

[Service]
ExecStart=/usr/local/bin/kube-scheduler \
  --address=<MASTER_IP> \
  --leader-elect=true \
  --kubeconfig=/etc/kubernetes/scheduler.conf \
  --v=2

Restart=on-failure
KillMode=process
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target

# 启动 kube-scheduler 服务
sudo systemctl daemon-reload
sudo systemctl enable kube-scheduler.service
sudo systemctl start kube-scheduler.service
  1. 验证 k8s 集群

执行以下命令验证 k8s 集群是否正常:

kubectl get nodes
kubectl version

在以上步骤中,我们手动下载

第二种部署方案指的是使用 kubeadm 工具部署 k8s 集群。以下是一个详细的 kubeadm 部署方案:

  1. 准备节点

在准备节点之前,需要满足以下要求:

  • CentOS 7 / Ubuntu 16.04 及以上版本
  • 2 个或以上的节点,1 个 Master 节点和 1 个或多个 Worker 节点
  • 每个节点至少 2 CPU 和 2GB 内存

安装 Docker 并启动服务:

curl -fsSL https://get.docker.com | bash -

systemctl start docker
systemctl enable docker
  1. 安装 kubeadm 工具

从官方仓库下载并安装 kubeadm 工具:

# 添加 kubernetes 仓库
sudo vi /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg

# 安装 kubeadm 工具
sudo yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
  1. 初始化 Master 节点

在 Master 节点上执行以下命令初始化 k8s 集群:

sudo kubeadm init --pod-network-cidr=10.244.0.0/16

执行成功后将输出 kubeadm join 命令,复制该命令以备后续使用。

  1. 配置 k8s 环境

在 Master 节点上执行以下命令设置 k8s 环境:

# 将当前用户的 kubeconfig 文件复制到默认目录下
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

# 安装网络插件(这里以 Calico 为例)
kubectl apply -f https://docs.projectcalico.org/v3.14/manifests/calico.yaml
  1. 加入 Worker 节点

在 Worker 节点上执行第 3 步中复制的 kubeadm join 命令加入集群。

sudo kubeadm join <Master_IP>:<PORT> --token <TOKEN> --discovery-token-ca-cert-hash sha256:<HASH>

执行成功后,可以在 Master 节点上通过以下命令查看节点状态:

kubectl get nodes

至此,k8s 集群已经部署成功。

第三种部署方案指的是使用 kubespray 工具部署 k8s 集群。以下是一个详细的 kubespray 部署方案:

  1. 准备节点

在准备节点之前,需要满足以下要求:

  • CentOS 7 / Ubuntu 16.04 及以上版本
  • 2 个或以上的节点,1 个 Master 节点和 1 个或多个 Worker 节点
  • 每个节点至少 2 CPU 和 2GB 内存
  • 所有节点之间需要能够互相访问,建议在同一局域网内
  1. 安装 Python 和 Ansible

在所有节点上安装 Python 和 Ansible:

# CentOS 7
sudo yum install -y python-setuptools python-devel libffi-devel openssl-devel gcc
sudo easy_install pip
sudo pip install ansible==2.9.6

# Ubuntu 16.04 及以上版本
sudo apt-get update
sudo apt-get install -y python-setuptools python-dev libffi-dev libssl-dev build-essential
sudo easy_install pip
sudo pip install ansible==2.9.6
  1. 克隆 kubespray 仓库

在任意节点上执行以下命令克隆 kubespray 仓库:

git clone https://github.com/kubernetes-sigs/kubespray.git
cd kubespray
  1. 配置集群

在 kubespray 目录下创建 inventory 文件:

cp -rfp inventory/sample inventory/mycluster

修改 inventory/mycluster 目录下的 inventory.ini 文件,配置集群信息:

[kube-master]
<MASTER_IP>

[kube-node]
<WORKER_IP_1>
<WORKER_IP_2>
...

[all:vars]
ansible_python_interpreter=/usr/bin/python3
cluster_name=kubernetes-cluster
container_manager=kubelet
docker_image_tag=v1.20.4
kube_version=v1.20.4
etcd_version=v3.4.14
kube_proxy_loadbalancer_exclude_cidrs=192.168.1.0/24

其中,<MASTER_IP> 为 Master 节点的 IP 地址,<WORKER_IP_X> 分别为 Worker 节点的 IP 地址。

  1. 部署集群

在 kubespray 目录下执行以下命令部署 k8s 集群:

# 带有需要下载 container image 的步骤
ansible-playbook -i inventory/mycluster/inventory.ini --user=<SSH_USER> --key-file=<SSH_PRIVATE_KEY_FILE> --become --become-user=root cluster.yml

# 不需要下载 container image 的步骤
ansible-playbook -i inventory/mycluster/inventory.ini --user=<SSH_USER> --key-file=<SSH_PRIVATE_KEY_FILE> --become --become-user=root cluster.yml --skip-tags=download

其中,<SSH_USER> 和 <SSH_PRIVATE_KEY_FILE> 需替换为实际使用的 SSH 用户名和私钥文件路径。

执行成功后,可以在 Master 节点上通过以下命令查看节点状态:

kubectl get nodes

至此,k8s 集群已经部署成功。

第四种部署方案指的是使用 Rancher 工具部署 k8s 集群。以下是一个详细的 Rancher 部署方案:

  1. 准备节点

在准备节点之前,需要满足以下要求:

  • CentOS 7 / Ubuntu 16.04 及以上版本
  • 2 个或以上的节点,1 个 Master 节点和 1 个或多个 Worker 节点
  • 每个节点至少 2 CPU 和 4GB 内存
  • 所有节点之间需要能够互相访问,建议在同一局域网内
  1. 安装 Docker 和 Rancher

在所有节点上安装 Docker:

curl https://releases.rancher.com/install-docker/19.03.sh | sh

在 Master 节点上安装 Rancher:

docker run -d --restart=unless-stopped -p 80:80 -p 443:443 rancher/rancher:stable
  1. 设置 Rancher

在浏览器中访问 Master 节点的 IP 地址或域名,进入 Rancher 的 Web 界面,按照页面上的提示创建账户和项目,并添加节点。

添加节点时需要选择对应的操作系统和部署方式,以及选择使用的 k8s 版本。添加成功后,可以在 Rancher 的 Web 界面中查看节点状态。

  1. 创建 k8s 集群

在 Rancher 的 Web 界面中,进入项目页面,选择 k8s 集群标签页,点击创建 k8s 集群并按照页面上的提示完成配置。

选项包括 k8s 版本、节点数量和规格、网络插件、自动扩容等。创建成功后,可以在页面上查看集群状态和节点状态。

至此,k8s 集群已经部署成功,并且可以在 Rancher 的 Web 界面中方便地管理和操作集群。文章来源地址https://www.toymoban.com/news/detail-707229.html

希望以上4种方案能帮助到你们。

到了这里,关于k8s部署的4方案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于Docker的K8s(Kubernetes)集群部署

    开始搭建k8s集群 三台服务器修改主机名称 关闭对话窗口,重新连接 三台主机名称呢就修改成功了。 接下来修改每台节点的 hosts 文件 所有节点关闭 setLinux 查看是否关闭成功 为每个节点添加 k8s 数据源 如果安装docker数据源找不到yum-config 所有节点安装kubelet kubelet安装中… k

    2024年02月08日
    浏览(100)
  • 【Kubernetes部署篇】Kubeadm方式搭建K8s集群 1.27.0版本

    官方文档: 二进制下载地址 环境规划: pod网段:10.244.0.0/16 service网段:10.10.0.0/16 注意: pod和service网段不可冲突,如果冲突会导致K8S集群安装失败。 主机名 IP地址 操作系统 master-1 16.32.15.200 CentOS7.8 node-1 16.32.15.201 CentOS7.8 node-2 16.32.15.202 CentOS7.8 1、关闭防火墙 2、配置域名解

    2024年02月08日
    浏览(78)
  • 【Kubernetes部署篇】Kubeadm方式搭建K8s集群 1.26.0版本

    官方文档: 二进制下载地址 环境规划: pod网段:10.244.0.0/16 service网段:10.10.0.0/16 注意: pod和service网段不可冲突,如果冲突会导致K8S集群安装失败。 容器运行时本次使用containerd。 主机名 IP地址 操作系统 master-1 16.32.15.200 CentOS7.8 node-1 16.32.15.201 CentOS7.8 node-2 16.32.15.202 CentOS

    2024年02月10日
    浏览(47)
  • Kubernetes(k8s)实战:Kubernetes(k8s)部署Springboot项目

    wordpress是用于快速搭建博客系统。 该yaml文件创建一个mysql,并且生成一个service,service对外暴露的端口是3306 我们发现,搭建成功了,用浏览器访问192.168.56.101:30493,发现访问成功了! 在集群中,pod之间可以通过service 的name进行访问,不仅仅是ip,这就意味着,service中不仅帮

    2024年02月12日
    浏览(98)
  • flink on k8s几种创建方式

    在此之前需要部署一下私人docker仓库,教程搭建 Docker 镜像仓库 注意:每台节点的daemon.json都需要配置 \\\"insecure-registries\\\": [\\\"http://主机IP:8080\\\"] 并重启 Session 模式是指在 Kubernetes 上启动一个共享的 Flink 集群(由 JobManager 和多个 TaskManagers 组成),然后多个 Flink 作业可以提交到这个

    2024年02月03日
    浏览(40)
  • Kubernetes(K8s)使用 kubeadm 方式搭建多 master 高可用 K8s 集群

    本篇主要针对上篇文章的单 master 节点的 K8s 集群上搭建多 master 节点集群 和 LB 负载均衡服务器。 Kubernetes(K8S)集群搭建基础入门教程 虚拟机 IP 地址: IP 操作系统 主机名称 192.168.2.121 centos7.9 k8s-master01 192.168.2.124 centos7.9 k8s-master02 192.168.2.125 centos7.9 k8s-node01 192.168.2.126 centos

    2023年04月26日
    浏览(52)
  • Kubernetes(K8S)集群部署

    目录 一、创建3台虚拟机 二、为每台虚拟机安装Docker 三、安装kubelet 3.1 安装要求 3.2 为每台服务器完成前置设置 3.3 为每台服务器安装kubelet、kubeadm、kubectl 四、使用kubeadm引导集群 4.1 master服务器 4.2 node1、node2服务器 4.3 初始化主节点 4.4 work节点加入集群 五、token过期怎么办?

    2024年02月07日
    浏览(84)
  • yum部署kubernetes(k8s)集群、k8s常用资源管理

    目录 一、环境搭建 1、准备环境 1)计算机说明,建议系统版本7.4或者7.6 2)修改所有主机的计算机名设置host文件  2、安装master节点 1)安装etcd配置etcd 2)安装k8s-master节点 3)配置apiserver 4)配置controller和scheduler 5)启动k8s服务 3、安装k8s-master上的node 1)安装node 2)配置kube

    2024年02月13日
    浏览(64)
  • kubernetes(k8s)+kubesphere部署

    目录 一 装备三台机器linux(centos) 二 准备前置环境并安装kubernetes 1  三台机器都要做如下操作  1.1 关闭防火墙: 1.2 关闭 selinux: 1.3 关闭 swap 1.4 添加主机名与 IP 对应关系 1.5 date 查看时间 (可选) 1.6 卸载系统之前的 docke 命令自行百度不做说明 1.7 安装 Docker-CE  1. 7.1 装

    2024年01月17日
    浏览(74)
  • Kubernetes(K8s)基本环境部署

    此处只做学习使用,配置单master环境。 1、ip+主机规划(准备五台新机)==修改各个节点的主机名 注意:关闭防火墙与selinux 节点 主机名 ip 身份 joshua1 kubernetes-master.openlab.cn 192.168.134.151 master joshua2 kubernetes-work1.openlab.cn 192.168.134.152 work1 joshua3 kubernetes-work2.openlab.cn 192.168.134.153

    2024年02月10日
    浏览(59)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包