热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

『Kubernetes』在Linux中快速安装K8S集群

📣读完这篇文章里你能收获到K8S安装全过程博主自己实操笔记带你跳过所有坑感谢点赞收藏,避免下次找不到~文章目录一、基本环境配置1.关闭selinux


请添加图片描述
📣读完这篇文章里你能收获到


  • K8S安装全过程
  • 博主自己实操笔记带你跳过所有坑
  • 感谢点赞+收藏,避免下次找不到~

请添加图片描述



文章目录


  • 一、基本环境配置
    • 1. 关闭selinux
    • 2. 关闭swap分区或禁用swap文件
    • 3. 修改网卡配置
    • 4. 关闭防火墙
    • 5. 设置机器HostName
    • 6. 更新系统时间

  • 二、kubectl、kubeadm、kubelet的安装
    • 1. 添加Kubernetes的yum源
    • 2. 安装kubeadm,kubelet和kubectl

  • 三、部署Master节点
    • 1. 初始化Master节点
    • 2. 安装Calico网络插件
    • 3. 安装Flannel
    • 4. 设置开机自启动
    • 5. 查看节点初始化情况
    • 6. 如果出问题则重新初始化

  • 四、部署Node节点
    • 1. 初始步骤
    • 2. 初始化Node节点
    • 3. 设置开机自启动



请添加图片描述



博主环境:Centos7.9,K8S1.8.0



一、基本环境配置

1. 关闭selinux

setenforce 0



2. 关闭swap分区或禁用swap文件

swapoff -a #临时关闭
free #可以通过这个命令查看swap是否关闭了
vi /etc/fstab #永久关闭 注释swap那一行(访问内存分区,k8s无法启动)



3. 修改网卡配置

$ vi /etc/sysctl.conf
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
$ sysctl -p



4. 关闭防火墙

systemctl stop firewalld
systemctl disable firewalld

5. 设置机器HostName

这里设置为maste,其他节点需要自行定义,如node1,node2…

hostnamectl set-hostname master

6. 更新系统时间

# 同步时间(这一步必须做,否则后面安装flannel可能会有证书错误)
yum install ntpdate -y
ntpdate cn.pool.ntp.org


二、kubectl、kubeadm、kubelet的安装

1. 添加Kubernetes的yum源


  • 此处使用alibaba的镜像源

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

2. 安装kubeadm,kubelet和kubectl

yum makecache fast
yum install -y kubectl-1.18.0 kubeadm-1.18.0 kubelet-1.18.0 --nogpgcheck

image.png

请添加图片描述


三、部署Master节点

1. 初始化Master节点

# 有注释版本,执行COPY时请复制下面的无注释版,修改IP
kubeadm init \
--apiserver-advertise-address=192.168.8.103 \ # 换成自己master的IP
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.18.0 \
--service-cidr=10.1.0.0/16 \
--pod-network-cidr=10.244.0.0/16 # 使用flannel网络必须设置成这个cidrKUB

kubeadm init \
--apiserver-advertise-address=192.168.8.103 \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.18.0 \
--service-cidr=10.1.0.0/16 \
--pod-network-cidr=10.244.0.0/16

# 主节点需执行
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
# 子节点需要加入的
kubeadm join 192.168.8.103:6443 --token hk8486.5em0jt93p7miilrh \
--discovery-token-ca-cert-hash sha256:8b9b83a8e3d8ac2e3e5d88404ab73e94d3ff00c0bc61f3e3af4492d8eb4db482

2. 安装Calico网络插件

kubectl apply -f https://docs.projectcalico.org/v3.10/manifests/calico.yaml

3. 安装Flannel

# 需要等到coredns都Run起来了再安装
# 安装flannel(在master执行)
// 1、在线安装
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

  • 如果无法连接,我这里已经下载好了,直接把文件下载,传到系统里面执行即可
  • 点击下载 kube-flannel.yml

// 2、离线安装
kubectl apply -f kube-flannel.yml

4. 设置开机自启动

systemctl enable kubelet.service
systemctl start kubelet.service

5. 查看节点初始化情况

[root@master ~]# kubectl get cs
NAME STATUS MESSAGE ERROR
etcd-0 Healthy {"health":"true"}
scheduler Healthy ok
controller-manager Healthy ok
[root@master ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
master Ready master 53m v1.18.0
[root@master ~]# kubectl get pods --all-namespaces
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system calico-kube-controllers-57546b46d6-8jkbc 1/1 Running 0 15m
kube-system calico-node-nztgg 1/1 Running 0 15m
kube-system coredns-7ff77c879f-gq8f7 1/1 Running 0 54m
kube-system coredns-7ff77c879f-msb2g 1/1 Running 0 54m
kube-system etcd-master 1/1 Running 0 54m
kube-system kube-apiserver-master 1/1 Running 0 54m
kube-system kube-controller-manager-master 1/1 Running 0 54m
kube-system kube-proxy-hzthl 1/1 Running 0 54m
kube-system kube-scheduler-master 1/1 Running 0 54m

6. 如果出问题则重新初始化

kubeadm reset
rm -rf $HOME/.kube

请添加图片描述


四、部署Node节点

1. 初始步骤


  • 一、二全部执行一遍

2. 初始化Node节点

# 上面主节点返回的
kubeadm join 192.168.8.103:6443 --token hk8486.5em0jt93p7miilrh \
--discovery-token-ca-cert-hash sha256:8b9b83a8e3d8ac2e3e5d88404ab73e94d3ff00c0bc61f3e3af4492d8eb4db482

3. 设置开机自启动

systemctl enable kubelet.service
systemctl start kubelet.service






推荐阅读
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • CEPH LIO iSCSI Gateway及其使用参考文档
    本文介绍了CEPH LIO iSCSI Gateway以及使用该网关的参考文档,包括Ceph Block Device、CEPH ISCSI GATEWAY、USING AN ISCSI GATEWAY等。同时提供了多个参考链接,详细介绍了CEPH LIO iSCSI Gateway的配置和使用方法。 ... [详细]
  • 通过Anaconda安装tensorflow,并安装运行spyder编译器的完整教程
    本文提供了一个完整的教程,介绍了如何通过Anaconda安装tensorflow,并安装运行spyder编译器。文章详细介绍了安装Anaconda、创建tensorflow环境、安装GPU版本tensorflow、安装和运行Spyder编译器以及安装OpenCV等步骤。该教程适用于Windows 8操作系统,并提供了相关的网址供参考。通过本教程,读者可以轻松地安装和配置tensorflow环境,以及运行spyder编译器进行开发。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 本文介绍了如何在给定的有序字符序列中插入新字符,并保持序列的有序性。通过示例代码演示了插入过程,以及插入后的字符序列。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • Windows 7 部署工具DISM学习(二)添加补丁的步骤详解
    本文详细介绍了在Windows 7系统中使用部署工具DISM添加补丁的步骤。首先需要将光驱中的安装文件复制到指定文件夹,并进行挂载。然后将需要的MSU补丁解压并集成到系统中。文章给出了具体的命令和操作步骤,帮助读者完成补丁的添加过程。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • 本文介绍了在CentOS 6.4系统中更新源地址的方法,包括备份现有源文件、下载163源、修改文件名、更新列表和系统,并提供了相应的命令。 ... [详细]
  • 微软评估和规划(MAP)的工具包介绍及应用实验手册
    本文介绍了微软评估和规划(MAP)的工具包,该工具包是一个无代理工具,旨在简化和精简通过网络范围内的自动发现和评估IT基础设施在多个方案规划进程。工具包支持库存和使用用于SQL Server和Windows Server迁移评估,以及评估服务器的信息最广泛使用微软的技术。此外,工具包还提供了服务器虚拟化方案,以帮助识别未被充分利用的资源和硬件需要成功巩固服务器使用微软的Hyper - V技术规格。 ... [详细]
  • 本文讨论了在使用Git进行版本控制时,如何提供类似CVS中自动增加版本号的功能。作者介绍了Git中的其他版本表示方式,如git describe命令,并提供了使用这些表示方式来确定文件更新情况的示例。此外,文章还介绍了启用$Id:$功能的方法,并讨论了一些开发者在使用Git时的需求和使用场景。 ... [详细]
  • 本文介绍了在无法联网的情况下,通过下载rpm包离线安装zip和unzip的方法。详细介绍了如何搜索并下载合适的rpm包,以及如何使用rpm命令进行安装。 ... [详细]
  • PeopleSoft安装镜像版本及导入语言包的方法
    本文介绍了PeopleSoft安装镜像的两个版本,分别是VirtualBox虚拟机版本和NativeOS版本,并详细说明了导入语言包的方法。对于Windows版本,可以通过psdmt.exe登录进入,并使用datamover脚本导入语言包。对于Linux版本,同样可以使用命令行方式执行datamover脚本导入语言包。导入语言包后,可以实现多种语言的登录。参考文献提供了相关链接以供深入了解。 ... [详细]
author-avatar
海家罗
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有