K8S系列一——集群环境搭建上

文章目录

    • 一、安装centos7虚拟机
    • 二、基本配置文件
      • 2.1 关闭SELinux
      • 2.2 关闭linux swap
      • 2.3 修改网卡配置
      • 2.4 启用内核模块
      • 2.5 关闭防火墙
    • 三、安装kubectl、kubeadm、kubelet
      • 3.1 配置kubernetes镜像源
      • 3.2 kubectl、kubeadm、kubelet安装
      • 3.3 启动kubelet服务
      • 3.4 docker安装配置
    • 四、获取k8s集群安装镜像
    • 五、拷贝两个节点

一、安装centos7虚拟机

1.具体安装过程略过,2个2核cpu,20G硬盘。注意一下网络配置选择NAT模式,编辑下面文件

vi /etc/sysconfig/network-scripts/ifcfg-ens32
##输入内容
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
#IPV6INIT="yes"
#IPV6_AUTOCONF="yes"
#IPV6_DEFROUTE="yes"
#IPV6_FAILURE_FATAL="no"
#IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens32"
UUID="e3e110e6-43e0-4d5a-bf04-4792cfb0f916"
DEVICE="ens32"
ONBOOT="yes"
ZONE=public
DNS1=114.114.114.114
IPADDR=192.168.136.129
NETMASK=255.255.255.0
GATEWAY=192.168.136.2
ONBOOT=yes

2.安装vim、git、wget、zsh工具

yum vim git wget zsh

安装 ohmyzsh插件

sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

github连接失败或者下载过慢,可以修改hosts文件,加入以下内容

140.82.114.3 github.com
185.199.108.153 assets-cdn.github.com
185.199.109.153 assets-cdn.github.com
185.199.110.153 assets-cdn.github.com
185.199.111.153 assets-cdn.github.com
199.232.5.194 github.global.ssl.fastly.net
140.82.114.4 gist.github.com
199.232.96.133 cloud.githubusercontent.com
199.232.96.133 camo.githubusercontent.com

ip地址会变化,查询实时域名对应ip之后修改。

安装完插件之后,会进入~目录下,修改ohmyzsh默认配置
K8S系列一——集群环境搭建上_第1张图片

vim .zshrc

K8S系列一——集群环境搭建上_第2张图片
ZSH_THEME=“robbyrussell” 改为ZSH_THEME=“bira” ,重新应用插件配置

source .zshrc

二、基本配置文件

2.1 关闭SELinux

sudo vim /etc/selinux/config
		# 修改
		SELINUX=disabled
		# SELINUX=enforcing

重启才能生效!

sestatus
	# 查看 SELinux
	SELinux status:                 disabled

2.2 关闭linux swap

vim /etc/fstab

注释这行,重启生效
K8S系列一——集群环境搭建上_第3张图片

swapoff -a #临时关闭

2.3 修改网卡配置

编辑文件vim /etc/sysctl.conf 添加:

#当linux主机有多个网卡时一个网卡收到的信息是否能够传递给其他的网卡 如果设置成1,可以进行数据包转发 
net.ipv4.ip_forward = 1
#开启bridge-nf,由于网桥工作于数据链路层,默认iptables没有开启bridge-nf时,数据会直接经过网桥转发,结果就是对FORWARD的设置失效
net.bridge.bridge-nf-call-iptables=1
net.bridge.bridge-nf-call-ip6tables=1
sysctl -p #使用配置

在这里插入图片描述
后续安装k8s集群时会产生这两个文件

2.4 启用内核模块

vim /etc/sysconfig/modules/ipvs.modules

输入如下命令
modprobe – ip_vs
modprobe – ip_vs_rr
modprobe – ip_vs_wrr
modprobe – ip_vs_sh
modprobe – nf_conntrack_ipv4
重启生效,依次执行临时生效
查看是否生效

cut -f1 -d " " /proc/modules |grep -e ip_vs -e nf_conntrack_ipv4

K8S系列一——集群环境搭建上_第4张图片

2.5 关闭防火墙

systemctl stop firewalld
systemctl disable firewalld

三、安装kubectl、kubeadm、kubelet

3.1 配置kubernetes镜像源

vim /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

3.2 kubectl、kubeadm、kubelet安装

kubelet:运行在cluster所有节点上,负责启动POD和容器
kubeadm:用于初始化k8s cluster
kubectl:kubectl是kubenetes命令行工具,通过kubectl可以部署和管理应用,查看各种资源,创建,删除和更新组件
默认安装最新版,不需要安装最新版,可以选择版本安装

yum install -y kubectl kubeadm kubelet

查看所有可安装版本

yum list kubectl --showduplicates

安装其他版本

yum install -y kubectl-1.16.3-0

3.3 启动kubelet服务

#设置开机启动
systemctl enable kubelet
#启动
systemctl start kubelet

3.4 docker安装配置

安装步骤请看:docker手动安装教程
查看docker cgroup驱动,k8s默认cgroup为systemd,docker与k8s保持一致

docker info | grep -i cgroup

在这里插入图片描述
通过修改守护进程配置文件来修改驱动类型为systemd

vim /etc/docker/daemon.json
#添加
"exec-opts":["native.cgroupdriver=systemd"]

在这里插入图片描述
重启docker,Cgroup驱动已修改为systemd
在这里插入图片描述

四、获取k8s集群安装镜像

kubeadm config images list

K8S系列一——集群环境搭建上_第5张图片
k8s.gcr.io国内网络无法访问,使用阿里云镜像试试,如果不能正常拉取请尝试以下办法:

  1. 进入https://hub.docker.com/,搜索kube-apiserver,找到kubeimage/kube-apiserver-amd64
  2. 找到对应tag v1.21.1,复制拉取命令docker pull kubeimage/kube-apiserver-amd64:v1.21.1
  3. 拉取镜像,重新打tag,docker tag kubeimage/kube-apiserver-amd64:v1.21.1 k8s.gcr.io/kube-apiserver:v1.21.1
  4. 删除原来的镜像docker rmi kubeimage/kube-apiserver-amd64:v1.21.1
  5. 按相同的方法获取其他6个镜像
    查看镜像
    K8S系列一——集群环境搭建上_第6张图片

五、拷贝两个节点

拷贝两个虚拟机作为node1、node2再继续配置,请看下一篇博客

你可能感兴趣的:(kubernetes)