当前位置: 首页 > news >正文

centos环境上:k8s 简单安装教程

本次演示安装3节点k8s环境,无需多言,直接上操作步骤:

1、环境准备

k8s部署前,首先需要准备好环境,除了1.4 步骤,其他步骤在所有(3个)节点上都要执行:

  1.1 关闭防火墙

systemctl stop firewalld

systemctl disable firewalld

  1.2 关闭selinux、关闭swap

sed -i 's/enforcing/disabled/' /etc/selinux/config
setenforce 0
sed -ri 's/.*swap.*/#&/' /etc/fstab
swapoff -a

  1.3 根据规划设置主机名

hostnamectl set-hostname <hostname>

<hostname> 为要设置的主机名 

 1.4 在 master 节点上添加hosts

cat >> /etc/hosts << EOF
192.168.10.1 node1
192.168.10.2 node0
192.168.10.3 master
EOF

注意:3个服务器IP都要设置为静态IP,主要此操作只需在master节点执行

 1.5  将桥接的IPv4流量传递到iptables的链

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

 1.6 手动加载所置

sysctl --system

 1.7 时间同步

同步微软时间服务器时间

yum install ntpdate -y

ntpdate time.windows.com

 2、安装 docker 环境

安装k8s之前,得先安装docker,所有节点都要执行下面步骤:

具体安装步骤参考下面文章:

docker 简单在线安装教程-CSDN博客

3、部署k8s集群

  3个节点docker都安装成功后,开始安装k8s:

 3.1 所有节点执行:添加阿里云软件源:

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
 

 3.2 所有节点安装:kubeadm、kubelet、kubectl

本次演示安装的k8s版本为 1.22.15

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

 3.3 初始化master,只在master节点执行:

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

注意:apiserver-advertise-address 除填写master节点IP地址;

初始化master之后,会输出一个join命令,先复制出来,node节点加入master会使用,如下图:

 3.4 拷贝k8s认证文件,只在master节点执行:

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
kubectl get nodes

  3.5 添加工作节点

在所有工作节点执行在kubeadm init输出的kubeadm join命令,如下图:

 3.6  在master节点查询node状态,如下图: 

当token过期或未保存时,可直接使用命令重新生成:

kubeadm token create --print-join-command 

 3.7 部署 CNI 容器网络插件:calico 

Calico 是一个纯三层的数据中心网络方案,是目前 Kubernetes 主流的网络方案。

只在 Master 节点执行:

wget https://docs.projectcalico.org/v3.24/manifests/calico.yaml --no-check-certificate
kubectl apply -f calico.yaml
kubectl get pods -n kube-system

或者:
kubectl apply -f https://docs.projectcalico.org/v3.24/manifests/calico.yaml
kubectl get pods -n kube-system

注意:calico 版本是否支持当前k8s版本,calico v3.24版本支持k8s 1.22~1.25.

calico部署过程如下截图:

 3.8  查看k8s所有pod是否都正常运行,在master节点执行:

kubectl get pods --all-namespaces

相关文章:

  • 《算法设计与分析》第五六章:回溯法与分支限界法
  • FreeRTOS学习笔记-基于stm32(11)任务通知及相关API函数简介
  • 12306 火车票价格解析 (PHP 解析)
  • 洛谷 P1008 [NOIP1998 普及组] 三连击
  • 被拷打已老实!面试官问我 #{} 和 ${} 的区别是什么?
  • 算法金 | 再见!!!梯度下降(多图)
  • 力扣469A
  • C++ 50 之 继承中的对象模型
  • 就因为没在大屏项目加全屏按钮,早上在地铁挨了领导一顿骂
  • javaweb 期末复习
  • 分页插件结合collection标签后分页数量不准确的问题
  • 小知识点快速总结:Batch Normalization Layer(BN层)的作用
  • phpcms仿蚁乐购淘宝客网站模板
  • android的surface
  • Sui主网升级至V1.27.2版本
  • C++类的相互关联
  • Spark in action on Kubernetes - Playground搭建与架构浅析
  • Vue UI框架库开发介绍
  • 彻底搞懂浏览器Event-loop
  • 简单基于spring的redis配置(单机和集群模式)
  • 理解 C# 泛型接口中的协变与逆变(抗变)
  • 聊聊spring cloud的LoadBalancerAutoConfiguration
  • 排序(1):冒泡排序
  • 深入 Nginx 之配置篇
  • 数据科学 第 3 章 11 字符串处理
  • 网页视频流m3u8/ts视频下载
  • 云栖大讲堂Java基础入门(三)- 阿里巴巴Java开发手册介绍
  • Java总结 - String - 这篇请使劲喷我
  • 支付宝花15年解决的这个问题,顶得上做出十个支付宝 ...
  • ​软考-高级-系统架构设计师教程(清华第2版)【第15章 面向服务架构设计理论与实践(P527~554)-思维导图】​
  • # AI产品经理的自我修养:既懂用户,更懂技术!
  • # C++之functional库用法整理
  • # 睡眠3秒_床上这样睡觉的人,睡眠质量多半不好
  • (10)Linux冯诺依曼结构操作系统的再次理解
  • (2020)Java后端开发----(面试题和笔试题)
  • (C)一些题4
  • (C++哈希表01)
  • (CVPRW,2024)可学习的提示:遥感领域小样本语义分割
  • (DenseNet)Densely Connected Convolutional Networks--Gao Huang
  • (html转换)StringEscapeUtils类的转义与反转义方法
  • (LeetCode 49)Anagrams
  • (Redis使用系列) Springboot 在redis中使用BloomFilter布隆过滤器机制 六
  • (Redis使用系列) Springboot 整合Redisson 实现分布式锁 七
  • (安卓)跳转应用市场APP详情页的方式
  • (附源码)python房屋租赁管理系统 毕业设计 745613
  • (附源码)计算机毕业设计SSM智能化管理的仓库管理
  • (每日持续更新)jdk api之FileFilter基础、应用、实战
  • (强烈推荐)移动端音视频从零到上手(上)
  • (删)Java线程同步实现一:synchronzied和wait()/notify()
  • (转)清华学霸演讲稿:永远不要说你已经尽力了
  • (转载)OpenStack Hacker养成指南
  • ./indexer: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object fil
  • .net Application的目录
  • .NET Core 将实体类转换为 SQL(ORM 映射)
  • .NET Core 实现 Redis 批量查询指定格式的Key