从零开始的 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

检查所需端口

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

Swap 禁用

sudo swapoff -a
小贴士:推荐在服务器安装时手动配置分区表,将 swap 分区删除,否则可能导致开机后自动挂载 swap 分区。

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 apt-transport-https gnupg2 curl -y

部署 repo

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

curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee -a /etc/apt/sources.list.d/kubernetes.list

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

curl -s https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add -
echo "deb 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 命令配置命令行补全功能


附录

相关链接

参考链接

如果遇到问题或者对文章内容存疑,请在下方留言,博主看到后将及时回复,谢谢!
回复
回答18+46=