kubeadm安装kubernetes(一)

step-1

设置主机名(每一台主机名不能一样,一台一台修改,这里只是给出修改主机名命令)

查看主机名hostname

修改主机名

hostnamectl set-hostname <your_hostname>

step-2

配置hosts文件,是节点之间可以使用hostname相互访问

cat > /etc/hosts <<EOF
<node_ip> <node_hostname>
<node_ip> <node_hostname>
<node_ip> <node_hostname>
<node_ip> <node_hostname>
<node_ip> <node_hostname>
EOF

step-3

更新yum源(yum upgrade只更新关键,yum update更新关键和内核)

yum update -y

step-4

安装依赖包

yum install -y epel-release conntrack ipvsadm ipset jq sysstat curl iptables libseccomp

step-5

关闭防火前

systemctl stop firewalld && systemctl disable firewalld

step-6

重置iptables(命令 -X 删除某个规则炼,-F 删除某规则炼中的所有规则,-P 定义过滤政策)

iptables -F && iptables -X && iptables -F -t nat && iptables -X -t nat && iptables -P FORWARD ACCEPT

step-7

关闭swap

swapoff -a

使用下面的命令对文件/etc/fstab操作,注释 /dev/mapper/centos_master-swap swap swap defaults 0 0 这行

sed -i ‘s/.swap./#&/’ /etc/fstab

step-8

关闭selinux

sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/g’ /etc/selinux/config #永久关闭
setenforce 0 #临时关闭

step-9

关闭dnsmasq(否则可能导致docker容器无法解析域名)

service dnsmasq stop && systemctl disable dnsmasq

step-10

制作配置文件

cat > /etc/sysctl.d/kubernetes.conf <<EOF
net.bridge.bridge-nf-call-iptables=1
net.bridge.bridge-nf-call-ip6tables=1
net.ipv4.ip_forward=1
vm.swappiness=0
vm.overcommit_memory=1
vm.panic_on_oom=0
fs.inotify.max_user_watches=89100
EOF

生效文件

modprobe br_netfilter
sysctl -p /etc/sysctl.d/kubernetes.conf

step-11

安装docker

创建所需目录

mkdir -p /opt/kubernetes/docker && cd /opt/kubernetes/docker

设置yum源

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

可以查看所有仓库中所有docker版本,并选择特定版本安装:

yum list docker-ce --showduplicates | sort -r

安装指定版本docker, 如果不指定版本号,将安装最新版本的docker

sudo yum install -y docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io

yum install -y docker-ce-19.03.8 docker-ce-cli-19.03.8 containerd.io

docker开机启动

systemctl enable docker && systemctl start docker

设置docker启动参数

- 设置docker数据目录:选择比较大的分区(我这里是根目录就不需要配置了,默认为/var/lib/docker)

- 设置cgroup driver, 防止文件驱动不一致,导致镜像无法启动(默认是cgroupfs,主要目的是与kubelet配置统一,这里也可以不设置后面在kubelet中指定cgroupfs)

docker info 可以查看到cgroup driver的类型

cat < /etc/docker/daemon.json
{
“graph”: “/docker/data/path”,
“exec-opts”: [“native.cgroupdriver=systemd”]
}
EOF

启动docker服务

systemctl start docker

daemon.json 详细配置示例

{

“debug”: false,

“experimental”: false,

“graph”: “/home/docker-data”,

“exec-opts”: [“native.cgroupdriver=systemd”],

“registry-mirrors”: [

“https://fy707np5.mirror.aliyuncs.com”

],

“insecure-registries”: [

“hub.zy.com”,

“172.16.249.159:8082”

]

}

启动docker服务

systemctl restart docker

step-12

安装kubeadm,kubelet,kubectl

kubeadm: 部署集群用的命令

kubelet: 在集群中每台机器上都要运行的组件,负责管理pod、容器的生命周期

kubectl: 集群管理工具(可选,只要在控制集群的节点上安装即可)

配置yum源,此处为阿里云kubernetes yum源码

cat < /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 list kubeadm --showduplicates | sort -r

安装指定版本(这里用的是1.18.2)

yum install -y kubeadm-1.18.2-0 kubelet-1.18.2-0 kubectl-1.18.2-0 --disableexcludes=kubernetes
###可选配置

设置kubelet的cgroupdriver(kubelet的cgroupdriver默认为systemd,如果上面没有设置docker的exec-opts为systemd,这里就需要将kubelet的设置为cgroupfs)

sed -i “s/cgroup-driver=systemd/cgroup-driver=cgroupfs/g” /etc/systemd/system/kubelet.service.d/10-kubeadm.conf

启动kubelet 所有的节点

systemctl enable kubelet && systemctl start kubelet

猜你喜欢

转载自blog.csdn.net/u014442879/article/details/109503458