从零开始的 Kubernetes 学习笔记(二)

后知后觉 暂无评论

使用 Kubernetes 对 Docker 容器进行快速编排成为新的微服务时代的部署风潮。

部署 Kubernetes

Kubernetes 有多种部署方式,一般不是很推荐使用 kubeadm 方式安装(主要是因为众所周知的大陆网络原因)但好在相关所需的镜像一般国内都有存档,可以使用国内容器仓库进行中转使用。

部署 kubeadm

在安装 kubeadm 工具箱之前需要确认软硬件兼容性:

需求

确认节点唯一

确保 MAC 地址和设备识别码在集群内唯一

小贴士:如果服务器使用硬盘克隆或者批量部署的虚拟机可能存在此问题,一般情况下可忽略。

网络通讯

iptables 接管流量,确保当前使用的是 br_netfilter 模块。

$ lsmod | grep br_netfilter # 查看是否已加载
$ sudo modprobe br_netfilter # 如果未加载需要手动加载(需要内核的支持)

设备启动时默认加载

cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
br_netfilter
EOF

加载模块后需要确认 sysctl 配置中 net.bridge.bridge-nf-call-iptables 参数被设置为 1

cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF

检查系统 sysctl 配置

sudo sysctl --system

检查所需端口

全新机器可以跳过本步骤,主要是为了防止端口冲突导致。

禁用交换分区

Kubernetes 的 kubelet 使用需要禁用 Swap 交换分区,否则可能产生无法预料的错误。

sudo swapoff -a
小贴士:推荐在服务器安装时手动配置分区表,将 swap 分区删除,否则可能导致开机后自动挂载 swap 分区,也需要记得注释掉 fstab 中的 swap 分区,防止机器重启后自动挂载。

一键删除交换分区

grep swap /etc/fstab && sudo sed -i.bak '/swap/d' /etc/fstab

不同发行版

CentOS

部署 repo

海外及中国港澳台等地区请使用(官方镜像)

cat <<EOF | sudo tee /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

中国大陆请使用(阿里云镜像)

cat <<EOF | sudo tee /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

安装

sudo setenforce 0
sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
sudo yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
sudo systemctl enable --now kubelet
小贴士:如果使用国内源安装时出现类似报错 GPG Error ,这是因为 GPG 同步异常,请使用 yum install -y --nogpgcheck 命令安装。

Debian

安装依赖

sudo apt update
sudo apt install -y apt-transport-https ca-certificates curl

部署 repo

海外及中国港澳台等地区请使用(官方镜像)

sudo curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg
echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list

中国大陆请使用(阿里云镜像)

sudo curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg
echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://mirrors.aliyun.com/kubernetes/apt kubernetes-xenial main" | sudo tee -a /etc/apt/sources.list.d/kubernetes.list

安装

sudo apt update
sudo apt install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl

配置及优化

命令行补全

为 kubectl kubeadm 命令配置命令行补全功能


附录

相关链接

参考链接

本文撰写于一年前,如出现图片失效或有任何问题,请在下方留言。博主看到后将及时修正,谢谢!
禁用 / 当前已拒绝评论,仅可查看「历史评论」。