k8s入门之集群搭建(二)
一、准备三台节点
从上篇文章 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入门之集群搭建(二)的更多相关文章
- .Net Core2.1 秒杀项目一步步实现CI/CD(Centos7.2)系列一:k8s高可用集群搭建总结以及部署API到k8s
前言:本系列博客又更新了,是博主研究很长时间,亲自动手实践过后的心得,k8s集群是购买了5台阿里云服务器部署的,这个集群差不多搞了一周时间,关于k8s的知识点,我也是刚入门,这方面的知识建议参考博客园 ...
- 【原创 Hadoop&Spark 动手实践 5】Spark 基础入门,集群搭建以及Spark Shell
Spark 基础入门,集群搭建以及Spark Shell 主要借助Spark基础的PPT,再加上实际的动手操作来加强概念的理解和实践. Spark 安装部署 理论已经了解的差不多了,接下来是实际动手实 ...
- 全文搜索引擎 Elasticsearch 入门:集群搭建
本文主要介绍什么是 ElasticSearch 以及为什么需要它,如何在本机安装部署 ElasticSearch 实例,同时会演示安装 ElasticSearch 插件,以及如何在本地部署多实例集群, ...
- 持续集成高级篇之Jenkins windows/linux混合集群搭建(二)
系列目录 前面我们说过,要使用ssh方式来配置windows从节点,如果采用ssh方式,则windows和linux配置从节点几乎没有区别,目前发现的惟一的区别在于windows从节点上目录要设置在c ...
- Oracle RAC集群搭建(二)-基础环境配置
01,创建用户,用户组 [root@rac1 ~]# groupadd -g 501 oinstall [root@rac1 ~]# groupadd -g 502 dba [root@rac1 ~] ...
- Hadoop集群搭建(二)~centos6.8的安装
这篇记录在创建好的虚拟机中安装centos6.8 1,在虚拟机界面-选择编辑虚拟机设置 2,CD/DVD,选择使用ISO映像文件,找到安装包的位置,确定 3,回到虚拟机的界面,开启此虚拟机 4,安装 ...
- 实现CI/CDk8s高可用集群搭建总结以及部署API到k8s
实现CI/CD(Centos7.2)系列二:k8s高可用集群搭建总结以及部署API到k8s 前言:本系列博客又更新了,是博主研究很长时间,亲自动手实践过后的心得,k8s集群是购买了5台阿里云服务器部署 ...
- 和我一起打造个简单搜索之ElasticSearch集群搭建
我们所常见的电商搜索如京东,搜索页面都会提供各种各样的筛选条件,比如品牌.尺寸.适用季节.价格区间等,同时提供排序,比如价格排序,信誉排序,销量排序等,方便了用户去找到自己心里理想的商品. 站内搜索对 ...
- Centos7下Etcd集群搭建
一.简介 "A highly-available key value store for shared configuration and service discovery." ...
随机推荐
- 突发!Gitee 图床,废了!
大家好,我是鱼皮,这两天又发生了一件挺意外的事情:Gitee 的图床废了! 图床:指储存图片的服务器,便于在网上展示图片 昨天晚上,星球里不止一位小伙伴发帖子表示自己网站.文章中的图片竟然全部变成了 ...
- 生产环境频繁内存溢出,原来就是因为这个“String类”
摘要:如果在程序中创建了比较大的对象,并且我们基于这个大对象生成了一些其他的信息,此时,一定要释放和这个大对象的引用关系,否则,就会埋下内存溢出的隐患. 本文分享自华为云社区<[高并发]你敢信? ...
- 常用写法java
迭代器遍历[List.Set.Map] 遍历List方法一:普通for循环 1 for(int i=0;i<list.size();i++){//list为集合的对象名 2 String tem ...
- springboot常用的starter有哪些?
spring-boot-starter-web 嵌入tomcat和web开发需要servlet与jsp支持 spring-boot-starter-data-jpa 数据库支持 spring-boot ...
- JVM内存模型小结
JVM运行时的数据区域划分图如下,该图是JVM内存模型最主要的内容. 从图中可以看出来,JVM将内存主要划分为五个部分:程序计数器.Java虚拟机栈.本地方法栈.Java堆和方法区.这些被划分为用途不 ...
- Linux下离线安装docker与fastDFS
一.Linux下离线安装Docker 基础环境 1.操作系统:CentOS 7 2.Docker版本:docker-19.03.9.tgz 官方下载地址(打不开可能需要科学-上网) 3.官方参考文档: ...
- MyBatis 实现一对多有几种方式,怎么操作的?
有联合查询和嵌套查询.联合查询是几个表联合查询,只查询一次,通过在 resultMap 里面的 collection 节点配置一对多的类就可以完成:嵌套查询是先查 一个表,根据这个表里面的 结果的外键 ...
- 【控制】模型预测控制 MPC 【合集】Model Predictive Control
1.模型预测控制--运动学模型 2.模型预测控制--模型线性化 3.模型预测控制--模型离散化 4.模型预测控制--预测 5.模型预测控制--控制律优化二次型优化 6.模型预测控制--反馈控制 7.模 ...
- iView 一周年了,同时发布了 2.0 正式版,但这只是开始...
两年前,我开始接触 Vue.js 框架,当时就被它的轻量.组件化和友好的 API 所吸引.之后我将 Vue.js 和 Webpack 技术栈引入我的公司(TalkingData)可视化团队,并经过一年 ...
- 编写大型项目web页面 从写web登陆页面开始
web页面搭建需要准备什么工具 首先我们会和设计师沟通 我们需要一些检验设计的工具 ps 自动裁图 自动测量工具 (我这里安利一下一个工具 我用的cutterman) sketch 可以使用阿里的工具 ...