一、准备三台节点

从上篇文章 k8s入门之基础环境准备(一)安装的Ubuntu虚拟机克隆出三台虚拟机,如图所示

启动这三台虚拟机节点,分别做如下配置

虚拟机名称 IP HostName
k8sMaster 192.168.59.110 k8sMaster
k8sWorker01 192.168.59.111 k8sWorker01
k8sWorker02 192.168.59.112 k8sWorker02

二、操作系统相关参数设置

注意:三台节点都要执行以下步骤

1.关闭selinux

ubuntu20.04默认没有安装selinux,不需要执行以下操作。如果是其他Linux操作系统请执行以下操作

sed -i '/^SELINUX=/c SELINUX=disabled' /etc/selinux/config
setenforce 0

2.永久关闭swap

swapoff -a

编辑 /etc/fstab 文件,注释以下内容

如果你安装的是centos是系统,请注释以下内容

通过free -m 命令查看swap交换分区已经关闭

3.内核参数和模块设置

# 激活 br_netfilter 模块
modprobe br_netfilter
cat << EOF > /etc/modules-load.d/k8s.conf
br_netfilter
EOF
# 内核参数设置:开启IP转发,允许iptables对bridge的数据进行处理
cat << EOF > /etc/sysctl.d/k8s.conf
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
EOF
# 立即生效
sysctl --system

三、安装k8s集群(版本:1.21.1)

1.配置apt源

注意:三台节点都要执行以下步骤

vi /etc/apt/sources.list

#加入以下内容
deb https://mirrors.aliyun.com/kubernetes/apt kubernetes-xenial main #获取key
curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add #更新
apt-get update

2.安装kubeadm等工具

注意:三台节点都要执行以下步骤

本教程安装指定版本:1.21.1

apt-get install -y  kubeadm=1.21.1-00 kubectl=1.21.1-00 kubelet=1.21.1-00

如果你想安装最新版本

apt-get install -y kubeadm kubectl kubelet

3.启动kubelet

注意:三台节点都要执行以下步骤

systemctl enable kubelet && systemctl start kubelet

4.查看安装k8s需要下载的镜像

在k8sMaster节点查看需要安装的k8s镜像

kubeadm config images list

一共有7个镜像文件

k8s.gcr.io/kube-apiserver:v1.21.11
k8s.gcr.io/kube-controller-manager:v1.21.11
k8s.gcr.io/kube-scheduler:v1.21.11
k8s.gcr.io/kube-proxy:v1.21.11
k8s.gcr.io/pause:3.4.1
k8s.gcr.io/etcd:3.4.13-0
k8s.gcr.io/coredns/coredns:v1.8.0

5.在master节点上通过kubeadm init安装k8s集群

参数说明:

--apiserver-advertise-address=192.168.59.110:指定k8s的master节点的IP地址

--image-repository:镜像仓库地址,如果你不能访问谷歌镜像仓库,请指定--image-repository为阿里云仓库

--pod-network-cidr=10.244.0.0/16:k8s的pod容器组的ip地址范围

--service-cidr=10.1.0.0/16:k8s的service服务的ip地址范围

--kubernetes-version=v1.21.1:k8s版本

在k8sMaster节点上执行以下命令

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

安装过程中会报错,是因为阿里云仓库中不存在 coredns/coredns 镜像

 [ERROR ImagePull]: failed to pull image registry.aliyuncs.com/google_containers/coredns/coredns:v1.8.0: output:
Error response from daemon: pull access denied for registry.aliyuncs.com/google_containers/coredns/coredns, repository d
oes not exist or may require 'docker login': denied: requested access to the resource is denied

解决方法就是手动拉取该镜像(默认就是docker hub仓库)并设置新tag:

注意:三台节点都要执行以下步骤

docker pull coredns/coredns:1.8.0
docker tag coredns/coredns:1.8.0 registry.aliyuncs.com/google_containers/coredns/coredns:v1.8.0
docker rmi coredns/coredns:1.8.0

在master节点上重置kubeadm reset,然后重新执行kubeadm init命令,安装过程大概会持续5~20分钟不等,请耐心等待

安装成功如下图所示,根据打印出来的提示信息,进行config文件配置,同时你需要保存图中后续worker节点加入集群的命令语句:kubeadm join ...

6.设置config文件

在master节点上执行以下命令

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
export KUBECONFIG=/etc/kubernetes/admin.conf

7.安装calico网络插件

此时master节点并没有准备就绪

需要安装网络插件,下载calico资源文件

wget  https://docs.projectcalico.org/v3.21/manifests/calico.yaml

执行安装

kubectl apply -f calico.yaml

安装完成后再次查看,pod都处于运行状态,而且master节点也处于就绪状态,接下来就是把worker节点加入到集群中

8.把worker节点加入集群

在worker节点上执行以下命令

kubeadm join 192.168.59.110:6443 --token pxfvw2.op3m2lmci4ym23xy \
--discovery-token-ca-cert-hash sha256:ef57d20bf60d17c5311609684c6fea190e372bc3b36487e7c37e44b61b9e40ef

然后再master节点上通过命令查看k8s所有节点状态

kubectl get nodes

此token的有效期是24小时,可以通过以下命令重新获取

kubeadm token create --print-join-command

四、关于k8s管理界面

安装官方的dashboard web管理界面很简单,本系列文章前期不会带大家去安装,目的是为了让大家多动手去敲那些k8s命令,这样可以加深映像,等大家用熟练了再去使用UI界面自然而然会很轻松,不至于一脸懵逼。

k8s入门之集群搭建(二)的更多相关文章

  1. .Net Core2.1 秒杀项目一步步实现CI/CD(Centos7.2)系列一:k8s高可用集群搭建总结以及部署API到k8s

    前言:本系列博客又更新了,是博主研究很长时间,亲自动手实践过后的心得,k8s集群是购买了5台阿里云服务器部署的,这个集群差不多搞了一周时间,关于k8s的知识点,我也是刚入门,这方面的知识建议参考博客园 ...

  2. 【原创 Hadoop&Spark 动手实践 5】Spark 基础入门,集群搭建以及Spark Shell

    Spark 基础入门,集群搭建以及Spark Shell 主要借助Spark基础的PPT,再加上实际的动手操作来加强概念的理解和实践. Spark 安装部署 理论已经了解的差不多了,接下来是实际动手实 ...

  3. 全文搜索引擎 Elasticsearch 入门:集群搭建

    本文主要介绍什么是 ElasticSearch 以及为什么需要它,如何在本机安装部署 ElasticSearch 实例,同时会演示安装 ElasticSearch 插件,以及如何在本地部署多实例集群, ...

  4. 持续集成高级篇之Jenkins windows/linux混合集群搭建(二)

    系列目录 前面我们说过,要使用ssh方式来配置windows从节点,如果采用ssh方式,则windows和linux配置从节点几乎没有区别,目前发现的惟一的区别在于windows从节点上目录要设置在c ...

  5. Oracle RAC集群搭建(二)-基础环境配置

    01,创建用户,用户组 [root@rac1 ~]# groupadd -g 501 oinstall [root@rac1 ~]# groupadd -g 502 dba [root@rac1 ~] ...

  6. Hadoop集群搭建(二)~centos6.8的安装

    这篇记录在创建好的虚拟机中安装centos6.8 1,在虚拟机界面-选择编辑虚拟机设置 2,CD/DVD,选择使用ISO映像文件,找到安装包的位置,确定 3,回到虚拟机的界面,开启此虚拟机 4,安装 ...

  7. 实现CI/CDk8s高可用集群搭建总结以及部署API到k8s

    实现CI/CD(Centos7.2)系列二:k8s高可用集群搭建总结以及部署API到k8s 前言:本系列博客又更新了,是博主研究很长时间,亲自动手实践过后的心得,k8s集群是购买了5台阿里云服务器部署 ...

  8. 和我一起打造个简单搜索之ElasticSearch集群搭建

    我们所常见的电商搜索如京东,搜索页面都会提供各种各样的筛选条件,比如品牌.尺寸.适用季节.价格区间等,同时提供排序,比如价格排序,信誉排序,销量排序等,方便了用户去找到自己心里理想的商品. 站内搜索对 ...

  9. Centos7下Etcd集群搭建

    一.简介 "A highly-available key value store for shared configuration and service discovery." ...

随机推荐

  1. VULNCMS

    靶机准备 导入虚拟机,并将网络模式设置为NAT 扫描ip netdiscover -r 192.168.164.0/24 渗透测试 扫描端口 nmap -sS -sV -T5 -A -p- 192.1 ...

  2. luoguP6620 [省选联考 2020 A 卷] 组合数问题(斯特林数)

    luoguP6620 [省选联考 2020 A 卷] 组合数问题(斯特林数) Luogu 题外话: LN切这题的人比切T1的多. 我都想到了组合意义乱搞也想到可能用斯特林数为啥还是没做出来... 我怕 ...

  3. MySQL 数据库作发布系统的存储,一天五万条以上的增量, 预计运维三年,怎么优化?

    1.设计良好的数据库结构,允许部分数据冗余,尽量避免 join 查询,提高效率. 2.选择合适的表字段数据类型和存储引擎,适当的添加索引. 3.MySQL 库主从读写分离. 4.找规律分表,减少单表中 ...

  4. 转:怎样理解OOP?OOP又是什么?

    本文转载至:https://blog.csdn.net/q34323201/article/details/80198271. OOP面向对象编程.OOP思想中很重要的有五点,类,对象,还有面向对象的 ...

  5. 学习Apache(五)

     apache目前主要有两种模式:prefork模式和worker模式: 1)prefork模式(默认模式) prefork是Unix平台上的默认(缺省)MPM,使用多个子进程,每个子进程只有一个线程 ...

  6. 全方位讲解 Nebula Graph 索引原理和使用

    本文首发于 Nebula Graph Community 公众号 index not found?找不到索引?为什么我要创建 Nebula Graph 索引?什么时候要用到 Nebula Graph ...

  7. (HTML基础系列1)网页基本结构

    元素名 描述 header 标记头部区域内容 footer 标记脚部区域内容 section Web页面中独立的一块区域 article 独立的文章内容 aside 相关文章应用或应用(常用于侧边栏) ...

  8. C# Tutorial for Frontend Developer

    1.Basic Hello World Console output -> console.log Console.WriteLine("Hello World!"); Va ...

  9. 快如闪电,触控优先。新一代的纯前端控件集 WijmoJS发布新版本了

    全球最大的控件提供商葡萄城宣布,新一代纯前端控件 WijmoJS 发布2018 v1 版本,进一步增强产品功能,并支持在 Npm 上的安装和发布,极大的提升了产品的易用性. WijmoJS 是用 Ty ...

  10. C#编写一个控制台应用程序,可根据输入的月份判断所在季节

    编写一个控制台应用程序,可根据输入的月份判断所在季节 代码: using System; using System.Collections.Generic; using System.Linq; us ...