k8s集群搭建
虚拟机 centos 系统搭建k8s集群三、搭建基本环境3.1、配置host文件该操作需要三台节点机器操作3.2、禁用firewalld防火墙该操作需要三台节点机器操作输入命令重启三台节点虚拟机安装Gcc相关环境依赖yum安装软件包设置stable镜像仓库yum安装docker-ce查看Docker版本配置国内镜像加速器利用命令查看是否配置加速器五、搭建kubernetes集群5.1、添加阿
一、前提条件
- 由于
Kubernetes
集群环境情况下,对于设备的硬盘、内存、CPU都有较高一定的需求,本人为了方便学习Kubernetes
集群,宿主机配置是:8核+16G+512G
的配置,需提前准备三台虚拟机,需可以联通外网的情况下搭建此环境,本人虚拟机配置如下:Node1
主节点:2核+3G+20G的配置Node2
节点:2核+5G+20G的配置Node3
节点:2核心+5G+20G的配置
- 总体:6核+13G+60G的配置足以搭建起来K8s集群以及
kubesphere
环境的搭建。
- 此搭建K8s和docker版本如下:
- Kubernetes:v1.20.6
- Docker:v20.10.22
二、配置静态网卡
- 查看虚拟机上的网关IP地址
- 三台虚拟机网卡配置
#修改网卡配置文件
vi /etc/sysconfig/network-scripts/ifcfg-ens33
#修改网卡配置文件(主节点)
BOOTPROTO=static #将dhcp模式改为static
ONBOOT=yes #将no改为yes
#静态网络配置信息如下
IPADDR=192.168.47.139
NETMASK=255.255.255.0
GATEWAY=192.168.47.2
DNS1=8.8.8.8
DNS2=114.114.114.114
#修改网卡配置文件(节点1)
BOOTPROTO=static #将dhcp模式改为static
ONBOOT=yes #将no改为yes
#静态网络配置信息如下
IPADDR=192.168.47.140
NETMASK=255.255.255.0
GATEWAY=192.168.47.2
DNS1=8.8.8.8
DNS2=114.114.114.114
#修改网卡配置文件(节点2)
BOOTPROTO=static #将dhcp模式改为static
ONBOOT=yes #将no改为yes
#静态网络配置信息如下
IPADDR=192.168.47.141
NETMASK=255.255.255.0
GATEWAY=192.168.47.2
DNS1=8.8.8.8
DNS2=114.114.114.114
#三台节点机器重启网卡
service network restart
- 在可以联通外网的情况下,可以不用配置本地
Yum
源,直接更新Yum
源即可
#更新yum源
yum update
#重新建立yum源缓存信息
yum makecache
三、搭建基本环境
3.1、配置host文件
- 该操作需要三台节点机器操作
#写入主机名解析文件
cat << EOF >/etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.47.139 k8s-node1
192.168.47.140 k8s-node2
192.168.47.141 k8s-node3
EOF
#设置每一个节点的主机名
hostname k8s-node1(主节点)
hostname k8s-node2(节点1)
hostname k8s-node3(节点2)
#查看每一个节点的主机名
hostname
3.2、禁用firewalld防火墙
- 该操作需要三台节点机器操作
#禁用firewalld
systemctl stop firewalld
systemctl disable firewalld
3.3、关闭selinux安全策略
- 使用
sestatus
发现是开启状态的
- 关闭安全策略
setenforce 0 && sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
- 输入
reboot
命令重启三台节点虚拟机
3.4、关闭Swap内存交换
- 输入
free -h
命令可以看到默认是有Swap
内存交换的
- 三台节点机器关闭
Swap
内存交换
swapoff -a && sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
3.5、修改Linux内核参数
- 将桥接的
IPv4
流量传递到iptables
的链; - 以下操作需要三台节点机器操作;
#写入配置信息,会自动创建该k8s.conf文件
cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
#重新生成应用配置文件
sysctl --system
四、搭建Docker环境
- 以下所有操作需要三台节点机器全部安装Docker环境
yum remove docker docker-client docker-client-latest docker-common docker-latest
docker-latest-logrotate docker-logrotate docker-engine
- 安装Gcc相关环境依赖
1、yum -y install gcc
2、yum -y install gcc-c++
- yum安装软件包
yum install -y yum-utils device-mapper-persistent-data lvm2
- 设置stable镜像仓库
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
- yum安装docker-ce
yum -y install docker-ce
- 查看Docker版本
docker version
- 配置国内镜像加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://cjbhlr8d.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
- 利用
docker info
命令查看是否配置加速器
- 设置开机自启动
Docker
systemctl enable docker
五、搭建kubernetes集群
5.1、添加阿里云Yum源
- 该操作需要三台节点机器执行
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
5.2、安装kubeadm、kubelet、kubectl
你需要在每台机器上安装以下的软件包:
- kubeadm:用来初始化集群的指令。
- kubelet:在集群中的每个节点上用来启动 Pod 和容器等。
- kubectl:用来与集群通信的命令行工具。
#安装K8s组件
yum install -y kubelet-1.20.6 kubeadm-1.20.6 kubectl-1.20.6
#设置开机自启动kubelet
systemctl enable kubelet
#开启kubelet
systemctl start kubelet
#查看kubelet日志
journalctl -xefu kubelet
5.3、部署主节点
kubeadm init \
--apiserver-advertise-address=192.168.47.139 \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.20.6 \
--service-cidr=10.96.0.0/12 \
--pod-network-cidr=10.244.0.0/16
参数解释:
--apiserver-advertise-address
:API服务器将通知它正在监听的IP地址,监听的地址为:"0.0.0.0"
,即本机所有IP地址。
--image-repository
:即为拉取基础镜像仓库镜像地址
--apiserver-bind-port
:API服务器绑定到的端口(默认:6443)
--cert-dir
:加载证书的相关目录(默认:/etc/kubernetes/pki)
--config
:配置文件的路径,警告:配置文件目前属于实验性,还不稳定。
--ignore-preflight-errors
:将错误显示为警告的检查列表进行忽略,例如:“IsPrivilegedUser,Swp”,“Value 'all’忽略所有检查中的错误。
--pod-network-cidr
:指定pod网络的IP地址范围,如果设置,控制平面将为每个节点自动分配CIDRs。
--service-cidr
:为Service VIPs使用不同的IP地址,(默认"10.96.0.0/12”)
- 以上就完成了
Kubernetes
集群主节点的环境搭建根据提示,第一步创建主节点文件
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
5.4、安装Pod网络插件
-
可以看出
master
的状态是未就绪(NotReady),之所以是这种状态是因为还缺少一个附件flannel
或者Calico
,没有网络各 Pod 是无法通信的。 -
这里使用flannel作为Pod的网络插件
- https://github.com/flannel-io/flannel:GitHub地址
-
应用flannel文件地址
#下载flannelYaml文件
wget https://raw.githubusercontent.com/flannel-io/flannel/v0.20.2/Documentation/kube-flannel.yml
#查看下载kube-flannel文件
vi kube-flannel.yml
- 这块儿一定要跟master主节点当中的
pod-network-cidr
参数一致这是Pod当中的网络参数
- 创建kube-flannel网络插件
kubectl apply -f kube-flannel.yml
- 等待kube-flannel网络插件为Running状态
kubectl get pods --all-namespaces
或
kubectl get pods -A
- 查看
Kubernetes
集群状态
5.5、加入节点
kubeadm
组件管理集群组件需要将Node2
节点和Node3
节点加入主节点- 以上操作分为在
Node2
节点和Node3
节点上执行
kubeadm join 192.168.47.139:6443 --token vyz3tk.hn5jka5emv5x2158 \
--discovery-token-ca-cert-hash sha256:329a3a41646c4a631aecdf5df4de98406051f2e76ae8c3cd412276f9dfe361ee
- 如遇到Token过期情况怎么办?
kubeadm token create --print-join-command
或
kubeadm token create --ttl 0 --print-join-command
Node2
节点和Node3
节点加入Node1
主节点
- 这部分如果遇到网络情况不要着急,必须等
Node2
和Node3
节点上出现flannel组件和子节点上的基础组件
- 至此
Kubernetes
集群搭建完成
更多推荐
所有评论(0)