使用kubeadm部署k8s集群

news2024/9/24 1:17:08

1、简介

K8s部署主要有两种方式:

  • 1、Kubeadm

  Kubeadm是一个K8s部署工具,提供kubeadm init和kubeadm join,用于快速部署Kubernetes集群。

  • 2、二进制

   从github下载发行版的二进制包,手动部署每个组件,组成Kubernetes集群。

本文通过kudeadm的方式在centos7上安装kubernetes集群。

2、环境准备

(1)初始化配置

#关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
#关闭selinux
sed -i 's/enforcing/disabled/' /etc/selinux/config 

#关闭swap

把/etc/fstab下的swap注释掉。

1

sed -ri 's/.*swap.*/#&/' /etc/fstab

#设置主机名

hostnamectl set-hostname k8s-master01
hostnamectl set-hostname k8s-worker01
hostnamectl set-hostname k8s-worker02

#在master添加hosts

cat > /etc/hosts << EOF
192.168.204.129 k8s-master01
192.168.204.130 k8s-worker01
192.168.204.131 k8s-worker02
EOF

#将桥接的IPV4流量传递到iptables的链:

cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF

sysctl --system

#时间同步

yum install ntpdate -y
ntpdate time.windows.com

(2) 安装Docker

wget http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
yum -y install docker-ce
systemctl enable docker && systemctl start docker

#配置镜像加速器

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://kd88kykb.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

(3)添加阿里云yum软件源

cat > /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

(4)安装kubeadm、kubelet和kubectl

 yum install -y kubelet-1.21.4 kubeadm-1.21.4 kubectl-1.21.4 
 systemctl enable kubelet

3、部署Kubernetes Master

kubeadm init \
--apiserver-advertise-address=192.168.204.129 \
--image-repository=registry.aliyuncs.com/google_containers \
--kubernetes-version=v1.21.4 \
--service-cidr=10.96.0.0/12 \
--pod-network-cidr=172.16.0.0/16 \
--ignore-preflight-errors=all

安装成功

使用kubectl查看节点状态

4、部署Node节点

向集群添加新节点,执行kubeadm join命令即可。

kubeadm join 192.168.204.129:6443 --token 1g5b2s.sany5uo5w4op3hae \
    --discovery-token-ca-cert-hash sha256:0fc38e874b727a9a4c2118e562a0b941dde98fa6ecc4ec2a6161b7d70a3966e2 

journalctl -u kubelet 

5、部署容器网络(CNI)

找到k8s版本对应的calico

https://projectcalico.docs.tigera.io/archive/v3.20/getting-started/kubernetes/requirements

#下载calico.yaml,替换CALICO_IPV4POOL_CIDR
curl https://docs.projectcalico.org/archive/v3.20/manifests/calico.yaml -O calico.yaml
curl https://raw.githubusercontent.com/projectcalico/calico/v3.25.0/manifests/calico-etcd.yaml -o calico.yaml
#通过CALICO_IPV4POOL_CIDR手动配置Pod子网范围
#   - name: CALICO_IPV4POOL_CIDR
#              value: "172.16.0.0/16"

kubectl apply -f calico.yaml
kubectl get pods -n kube-system

6、测试kubernetes集群

在集群中创建一个pod,验证是否正常运行:

kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --port=80 --type=NodePort
kubectl get pod,svc

7、部署Dashboard

下载,并增加 type: NodePort

https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.3/aio/deploy/recommended.yaml

kubectl apply -f recommended.yaml
kubectl get pod,svc -n kubernetes-dashboard

浏览器访问dashboard

创建service account 并绑定默认cluster-admin管理员集群角色:

1

2

3

4

5

6

#创建用户

kubectl create serviceaccount dashboard-admin -n kube-system

#用户授权

kubectl create clusterrolebinding dashboard-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin

#获取用户token

kubectl describe  secret -n kube-system $(kubectl -n kube-system get secret|awk '/dashboard-admin/{print $1}')

使用token登录dashboard。

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2122027.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

通过 汇编 分析 结构体

不使用结构体的情况&#xff0c; 网上的资料&#xff1a; 使用结构体的情况 总结 ; 使用 结构体之后&#xff0c; 会节省汇编的 ldr 指令&#xff0c; 结构体 就直接使用 偏移量 来 对变量进行赋值了。 注意 &#xff1a; 这里 结构体 依然是一个全局变量。

CentOS7 安装配置Maven

一、Maven介绍 Apache Maven 是一个 Java 项目的构建自动化工具&#xff0c;主要用于构建、依赖管理和项目信息管理。Maven 使用一种称为“生命周期”&#xff08;Lifecycle&#xff09;的概念来管理构建过程的不同阶段&#xff0c;例如编译源代码、运行测试、打包、部署等。这…

ubuntu使用命令行查看硬件信息

ubuntu使用命令行查看硬件信息 CPU cat /proc/cpuinfo其中&#xff0c;model name就显示了cpu的型号&#xff0c;cpu cores显示cpu的所有物理核心数量。 内存 cat /proc/meminfo其中&#xff0c;MemTotal就显示总内存大小&#xff0c;这里为32GB内存&#xff0c;SwapTotal显…

走近张大鹏教授:哈工大走出的中国第一位人工智能博士

写在最前 张大鹏&#xff0c;加拿大皇家科学院院士&#xff0c;加拿大工程院院士&#xff0c;国际电气与电子工程师协会终身会士&#xff08;IEEE Fellow&#xff09;&#xff0c;国际模式识别协会会士&#xff0c;亚太人工智能学会会士&#xff0c;香港中文大学&#xff08;深…

速通GPT-3:Language Models are Few-Shot Learners全文解读

文章目录 论文实验总览1. 任务设置与测试策略2. 任务类别3. 关键实验结果4. 数据污染与实验局限性5. 总结与贡献 Abstract1. 概括2. 具体分析3. 摘要全文翻译4. 为什么不需要梯度更新或微调⭐ Introduction1. 概括2. 具体分析3. 进一步分析 Approach1. 概括2. 具体分析3. 进一步…

批发订货系统源码怎么弄 门店订货系统小程序价格

上线批发订货系统可以显著提升业务效率和管理水平&#xff0c;它能够帮助企业自动化处理订单、实时跟踪库存、简化订单管理、生成数据报表…这些优势能最终帮助你降低成本、提高效率&#xff0c;提升业务竞争力。今天&#xff0c;小编为您分享批发订货系统源码怎么弄。大家点赞…

自带线充电宝哪个牌子质量好性价比高?口碑最好自带线充电宝

在如今这个快节奏的时代&#xff0c;手机等电子设备已经成为我们生活中不可或缺的一部分。然而&#xff0c;电量不足的困扰时常让我们陷入尴尬境地。自带线充电宝的出现&#xff0c;无疑为我们解决了这一难题。它不仅方便携带&#xff0c;无需再额外携带充电线&#xff0c;而且…

新手入行项目管理,需掌握六大核心技能

对于新手而言&#xff0c;学习项目管理的核心技能对于确保项目目标的明确性、资源的有效利用、团队协作的顺畅性、风险的有效控制&#xff0c;以及按时按质完成任务至关重要。项目管理对组织成功至关重要&#xff0c;它提高资源配置效率&#xff0c;促进创新&#xff0c;确保项…

一个请求入参 req 引发的魔法攻击

项目场景 月初检修上线后没几天&#xff0c;隔壁项目组的同事&#xff0c;反馈说出现了生产问题&#xff0c;调用我们这边的接口报错。 问题描述 看到这个问题的第一眼&#xff0c;什么鬼&#xff0c;请求参数错误&#xff1f; 但是看到 “操作用户信息为空” 这个提示的时候…

MySQL系列—10.Innodb行格式

我们平时的数据以行为单位来想表中插入数据&#xff0c;这些记录在磁盘上的存放方式也被称为行格式或者记录格式。InnoDB存储引擎设计了 4 种不同类型的行格式&#xff0c;分别是Compact、Redundant、Dynamic 和 Compressed行格式 查看MySQL8的默认行格式&#xff1a; SELECT…

STM32 HAL freertos零基础(四) 二值信号量

1、二值信号量 FreeRTOS中的二值信号量是一种用于任务间同步的机制&#xff0c;它只能有两个状态&#xff1a;0 或 1。二值信号量通常用来表示某个事件是否发生&#xff0c;比如硬件中断发生时设置信号量为1&#xff0c;表示事件已发生&#xff1b;而任务在需要等待该事件发生时…

Jupyter Notebook远程登录配置

目录 一、之前的版本修改方法 1、生成配置文件 2、设置密码、获取秘钥 3、修改默认配置文件 注&#xff1a;自动化脚本 二、新版本 注&#xff1a;自动化脚本 三、访问 四、ip查询 1、win 2、linux 一、之前的版本修改方法 1、生成配置文件 jupyter notebook --ge…

选对crm管理系统软件,客户留存率提升70%不是梦!

本文将盘点10款行业领先的crm管理系统软件&#xff0c;为企业选型提供参考&#xff01; CRM系统&#xff0c;全称Customer Relationship Management System&#xff0c;即客户关系管理系统&#xff0c;是企业用来管理和分析客户互动与数据的软件系统。CRM系统的核心在于“以客户…

idea 拉取项目需要log in to git地址

idea 拉取项目需要log in to git地址 一. 问题复现二. 解决办法 一. 问题复现 1.使用 idea 拉取 git 代码 2.弹出“log in to XXXX 二. 解决办法

JavaWeb案例-登录认证

在前面的文章中&#xff0c;我们复习了部门管理、员工管理的基本功能。但是我们并没有登录&#xff0c;就直接访问到了Tilias智能辅助系统的后台。这是不安全的&#xff0c;所以今天复习登录认证。最终实现的效果就是用户必须登录之后&#xff0c;才可以访问后台系统中的功能。…

Java版本管理工具Jabba安装教程(Windows)

Java版本管理工具Jabba安装教程&#xff08;Windows&#xff09; 前言 Java版本的管理工具有很多&#xff0c;诸如Jenv,Jabba等&#xff0c;考虑到我之前使用Node.js的nvm还比较顺手&#xff0c;Jabba是受Node.js的nvm启发而来&#xff0c;故选择Jabba作为版本管理工具 这里…

iPhone照片删不掉?原因探索及解决方案

对于许多iPhone用户来说&#xff0c;删除不再需要的照片似乎是一个简单的任务。然而&#xff0c;有时你可能会发现某些照片无论如何都删不掉。这不仅令人困惑&#xff0c;还可能导致不必要的存储空间浪费。本文将探索导致iPhone照片删不掉的几种常见原因&#xff0c;并提供有效…

sdk和API接口的区别

目录 ✔️SDK&#xff08;Software Development Kit&#xff09;特点 ✔️API接口&#xff08;Application Programming Interface&#xff09;特点 ✔️区别总结✔️结合使用 ✔️SDK&#xff08;Software Development Kit&#xff09; SDK 是一组工具、库、文档和示例代码的集…

笔记本电脑桌面删除文件怎么恢复?恢复步骤全解析

在快节奏的现代生活中&#xff0c;笔记本电脑已成为我们不可或缺的伴侣。桌面作为电脑使用的起点&#xff0c;经常堆满了各种文件和快捷方式。 然而&#xff0c;由于操作失误或其他原因&#xff0c;我们有时会误删桌面上的重要文件&#xff0c;这无疑会给我们带来极大的困扰。…

SSM框架整合实战

本笔记基于【尚硅谷新版SSM框架全套视频教程&#xff0c;Spring6SpringBoot3最新SSM企业级开发】https://www.bilibili.com/video/BV1AP411s7D7?vd_sourcea91dafe0f846ad7bd19625e392cf76d8 总结 资料获取网址&#xff1a;https://www.wolai.com/v5Kuct5ZtPeVBk4NBUGBWF 框架…