首页 > 其他分享 >k8s集群环境搭建

k8s集群环境搭建

时间:2023-05-18 22:33:45浏览次数:52  
标签:-- yum 集群 docker k8s root localhost 搭建

注:如下文档不是一次性搭建成功的,可能有一些地方ip地址和实际成功的那次地址不一样。

首先,我们准备3台虚拟机,配置都是是2核心2.2G内存

192.168.3.121   k8s-master
192.168.3.133   k8s-node1
192.168.3.119   k8s-node2

1 修改主机名

经过实践,发现,如果不修改主机名的话,安装可能会失败(但是在第一次安装的时候没修改主机名也可以,这里不细究原因了)

#master节点执行
hostnamectl set-hostname k8s-master
#node1节点执行 hostnamectl set-hostname k8s-node1
#node2节点执行 hostnamectl set-hostname k8s-node2

然后reboot重启

2 基本软件安装(3个节点都执行)

2.1 修改hosts文件

192.168.3.121   k8s-master
192.168.3.133   k8s-node1
192.168.3.119   k8s-node2

2.2 防火墙操作

systemctl stop firewalld NetworkManager
systemctl disable firewalld NetworkManager

2.3 iptables

[root@localhost ~]# sed -ri 's#(SELINUX=).*#\1disabled#' /etc/selinux/config
[root@localhost ~]# cat /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX=disabled
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of three values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected.
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted
[root@localhost ~]# setenforce 0
[root@localhost ~]# systemctl disable firewalld && systemctl stop firewalld
[root@localhost ~]# getenforce 0
Permissive
[root@localhost ~]# iptables -F
[root@localhost ~]# iptables -X
[root@localhost ~]# iptables -Z
[root@localhost ~]# iptables -P FORWARD ACCEPT
[root@localhost ~]#

2.4 关闭swap

[root@localhost ~]# swapoff -a
[root@localhost ~]# sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab

2.5 yum源配置

curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
sed -i '/aliyuncs/d' /etc/yum.repos.d/*.repo
yum clean all && yum makecache fast

2.6 时间同步软件

修改配置文件:vi /etc/chrony.conf,加入如下行

 server ntp.aliyun.com iburst 

然后执行命令

yum install chrony -y
systemctl start chronyd
systemctl enable chronyd
date
hwclock -w

2.7 网络配置相关

[root@localhost ~]# cat <<EOF > /etc/sysctl.d/k8s.conf
> net.bridge.bridge-nf-call-ip6tables = 1
> net.bridge.bridge-nf-call-iptables = 1
> net.ipv4.ip_forward=1
> vm.max_map_count=262144
> EOF
[root@localhost ~]#

 2.8 修改linux内核参数,开启数据包转发功能

# 容器跨主机通信,底层走的iptables,内核级别的数据包转发
[root@localhost ~]# modprobe br_netfilter
# 下面命令用于加载读取内核参数配置文件
[root@localhost ~]# sysctl -p /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
vm.max_map_count = 262144
[root@localhost ~]#

2.9 安装docker

yum remove docker docker-common docker-selinux docker-engine -y
curl -o /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast
yum list docker-ce --showduplicates
yum install docker-ce-19.03.15 docker-ce-cli-19.03.15 -y

配置docker加速器、以及cgroup驱动,改为k8s官方推荐的systemd,否则初始化时会报错

mkdir -p /etc/docker
cat > /etc/docker/daemon.json << 'EOF'
{"registry-mirrors": ["http://hub-mirror.c.163.com","https://docker.mirrors.ustc.edu.cn"],"exec-opts":["native.cgroupdriver=systemd"]}
EOF
systemctl start docker && systemctl enable docker

2.10 安装k8s初始化工具

curl -o /etc/yum.repos.d/Centos-7.repo http://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/docker-ce.repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
cat <<EOF >  /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
EOF
yum clean all && yum makecache
yum list kubeadm --showduplicates
安装指定版本
yum install kubelet-1.19.3 kubeadm-1.19.3 kubectl-1.19.3 ipvsadm

然后我们查看一下kubeadm版本

 设置kubelet开机启动

[root@localhost ~]# systemctl enable docker
[root@localhost ~]# systemctl enable kubelet

3 初始化master节点(只在master节点执行)

kubeadm init --apiserver-advertise-address=192.168.3.121 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.19.3 --service-cidr=10.1.0.0/16 --pod-network-cidr=10.2.0.0/16 --service-dns-domain=cluster.local --ignore-preflight-errors=Swap --ignore-preflight-errors=NumCPU

参数说明

--apiserver-advertise-address=192.168.3.121 #master节点的ip

--service-cidr=10.1.0.0/16 #k8s服务发现网段设置,service网段

--pod-network-cidr=10.2.0.0/16 #设置pod创建后的运行网段地址

--service-dns-domain=cluster.local #k8s服务发现网段设置,service资源的域名后缀

--ignore-preflight-errors=Swap #忽略swap报错

--ignore-preflight-errors=NumCPU #忽略CPU数量报错

执行完毕后的信息

提示control-plane初始化成功后,执行红框的命令

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

此时master节点配置完成了

4 将两个node节点添加到集群中

在两个node节点执行上一步生成的命令

[root@localhost ~]# kubeadm join 192.168.3.103:6443 --token 3fgatp.vubqh698q0cb67pb \
>     --discovery-token-ca-cert-hash sha256:1920df0215470b614b7faee4abbd79da2b00ec36a8865b9730d86530c25277a6

此时node机器就可以和master机器通信了,走kubelet进程

执行成功后我们去master节点查看

5 部署容器网络(master节点执行)

wget https://docs.projectcalico.org/v3.20/manifests/calico.yaml --no-check-certificate

下载完后还需要修改里面定义Pod网络(CALICO_IPV4POOL_CIDR),与前面kubeadm init的
–pod-network-cidr指定的一样

vi calico.yaml

保存后执行如下命令

kubectl apply -f calico.yaml

再次查看节点状态

建立网络通信需要一个过程,大约几分钟后节点状态就会变为Ready状态

 

至此,k8s集群环境搭建完毕。

 

标签:--,yum,集群,docker,k8s,root,localhost,搭建
From: https://www.cnblogs.com/zhenjingcool/p/17413490.html

相关文章

  • 2、TOMCAT实现在一个服务器上搭建多个网站、8080改80端口、TOMCAT默认页面三个选项
    在一个服务器上搭建多个网站如何实现三种方案:IP来区分、端口号来区分、host来区分如nginx中IP来区分:server{listen1.1.1.1:80;}server{listen2.2.2.2:80;}端口号来区分:server{listen1.1.1.1:80;}server{listen1.1.1.1:81;}host(主机头)来区分:ser......
  • 渗透测试-struts2攻防环境搭建拿shell
    一、下载Jspstudy打开目录D:\JspStudy\tomcat\webapps二、打开struts2并进行拿shell1.打开struts2在浏览器中输入网址http://localhost:8080/struts2-showcase/showcase.action点击上面的Configuration,点击ActionChaining点击上面的Configuration,点击ActionChaining点击......
  • Centos7搭建sftp
    Centos7搭建sftp根据网上教程写了总结写了个搭建的自动化脚本#!/bin/bashfunctioncheckVersion(){#获取SSH版本号#获取SSH版本信息version_info=$(ssh-V2>&1)#从版本信息中提取OpenSSH版本号openssh_version=$(echo"$version_info"|awk-F'[,_]''{p......
  • 复制环境搭建
    一.复制环境搭建(基于MySQL5.7.9-log)创建一个复制用户------Master节点--root@mysqldb10:24:[(none)]>resetmaster;#先将master设置成初始状态mysql>createuser'repl'@'%'identifiedby'123456';QueryOK,0rowsaffected(0.01sec)mysq......
  • webpack搭建typescript项目
    基于webpack的typescript项目搭建该项目是搭建了一个数值转换的前端项目,使用了webpack,typescript重点学习webpack.config.js的配置/Users/song/Code/webgpu_learn/webgpu-for-beginners/03typescript/finished/index.html<!DOCTYPEhtml><htmllang="en"><head><m......
  • Windows下hexo个人博客详细搭建教程
    1.hexo介绍hexo是一个静态的个人博客框架,静态的意思就是没有后台,就是直接将文件放到Web服务器中通过浏览器进行访问官网链接:https://hexo.io/zh-cn/index.html2.安装1)安装node.jshexo需要node.js支持,所以需要先安装node.js,可参考https://blog.csdn.net/chanyeolchichi/art......
  • windows环境下如何优雅搭建ftp服务?
    目录0.前言1.ftp简介2.下载ApacheFTPServer3.下载并解压压缩包4.修改配置文件4.1修改users.properties配置文件4.2修改ftpd-typical.xml配置文件5.启动FTPServer6.访问FTP7.ftp的启动与关闭0.前言由于学习或工作需要,我们经常需要和他人或其他电脑共享文件,在这之前我们普遍......
  • 搭建个人博客-hexo+github详细完整步骤
    自己也算是摸爬滚打搭建成功,然后自己再重新安装部署一遍,把完整步骤分享给大家,同时最后有一些连接,如果我的步骤不行,大家可以参考其他人的(这个有点花费时间,大家提前有个心理准备-_-)一、第一步:下载安装Git1、Git下载地址2、安装步骤个人选择全选选择第二个......
  • 搭建个人博客-hexo+github详细完整步骤
    自己也算是摸爬滚打搭建成功,然后自己再重新安装部署一遍,把完整步骤分享给大家,同时最后有一些连接,如果我的步骤不行,大家可以参考其他人的(这个有点花费时间,大家提前有个心理准备 -_-)一、第一步:下载安装Git1、Git下载地址2、安装步骤个人选择全选选择......
  • kafka设置多代理集群
    到目前为止,我们一直在使用单个代理,这并不好玩。对Kafka来说,单个代理只是一个大小为一的集群,除了启动更多的代理实例外,没有什么变化。为了深入了解它,让我们把集群扩展到三个节点(仍然在本地机器上)。首先,为每个代理创建一个配置文件(在Windows上使用copy 命令来代替):12>cpconfig......