centos7安装kubeadm

安装配置docker

v1.9.0版本推荐使用docker v1.12,
v1.11, v1.13, 17.03也可以使用,再高版本的docker可能无法正常使用。
测试发现17.09无法正常使用,不能使用资源限制(内存CPU)

安装docker

# 卸载安装指定版本docker-ce
yum remove -y docker-ce docker-ce-selinux container-selinux
yum install -y --setopt=obsoletes=0 \
docker-ce-17.03.1.ce-1.el7.centos \
docker-ce-selinux-17.03.1.ce-1.el7.centos

修改docker配置使用systemd

在/etc/docker/daemon.json文件添加如下配置
centos7安装的docker12不能添加此参数,否则会无法启动

{
  "exec-opts": ["native.cgroupdriver=systemd"]
}

# 如果使用了加速器配置格式如下
{
  "registry-mirrors": ["https://tfhzn46h.mirror.aliyuncs.com"],
  "exec-opts": ["native.cgroupdriver=systemd"]
}

启动docker

systemctl enable docker && systemctl restart docker

安装 kubeadm, kubelet 和 kubectl

如下的安装方法,选择其中一个即可。

FQ安装

需要FQ才能正常安装,如果不能FQ,可以使用阿里云或其他云提供的容器海外构建功能,下载好包。
启动容器,之后从容器中把文件获取出来安装即可。

# 安装依赖
yum install -y ebtables socat

# 在能FQ的机器上下载rpm包
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOF
yum install -y yum-utils
k8s_version=$(yum info kubelet | grep Version | awk -F ':' '{print $2}' | tr -d ' ')
mkdir k8s-$k8s_version && cd k8s-$k8s_version
yumdownloader kubelet kubeadm kubectl kubernetes-cni

# 打包下载到要安装的机器上
cd .. && tar cvzf k8s-${k8s_version}.tgz k8s-$k8s_version/

# 安装
tar xf k8s-*.tgz && cd k8s-* && yum localinstall -y *.rpm

使用阿里镜像安装

# 配置源
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

# 安装
yum install -y kubelet kubeadm kubectl

二进制安装方法(不推荐)

此需要自己安装kubernetes-cni

# 下载安装
version=$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)
wget https://storage.googleapis.com/kubernetes-release/release/$version/bin/linux/amd64/kubectl
wget https://storage.googleapis.com/kubernetes-release/release/$version/bin/linux/amd64/kubeadm
wget https://storage.googleapis.com/kubernetes-release/release/$version/bin/linux/amd64/kubelet
chmod +x kubectl kubeadm kubelet
mv kubectl kubeadm kubelet /usr/local/bin

实验所用kubeadm相关文件已经上传到了百度网盘
链接:https://pan.baidu.com/s/1pl7YYUYZsPd98J0DhNLWEQ 密码:40na

配置系统相关参数

# 临时禁用selinux
# 永久关闭 修改/etc/sysconfig/selinux文件设置
sed -i 's/SELINUX=permissive/SELINUX=disabled/' /etc/sysconfig/selinux
setenforce 0

# 临时关闭swap
# 永久关闭 注释/etc/fstab文件里swap相关的行
swapoff -a



# 开启forward
# Docker从1.13版本开始调整了默认的防火墙规则
# 禁用了iptables filter表中FOWARD链
# 这样会引起Kubernetes集群中跨Node的Pod无法通信

iptables -P FORWARD ACCEPT

# 配置转发相关参数,否则可能会出错
cat <<EOF >  /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
vm.swappiness=0
EOF
sysctl --system

参考文档

posted @   ido  阅读(4907)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
历史上的今天:
2016-12-03 SpringMVC4零配置--web.xml
2016-12-03 spring3.0使用annotation完全代替XML(续)
2016-12-03 spring3.0使用annotation完全代替XML(三)
2016-12-03 spring3.0使用annotation完全代替XML
点击右上角即可分享
微信分享提示