大家好,我是砸锅。一个摸鱼八年的后端开发。熟悉 Go、Lua。今天和大家一起学习 Kubernetes😊
kubeadm
使用 kubeadm 安装 Kubernetes,安装前四个步骤:改主机名、改 Docker 配置、改网络设置、改交换分区
由于 Kubernetes 使用主机名来区分集群里的节点,所以每个节点的 hostname 必须不能重名。你需要修改“/etc/hostname”这个文件,把它改成容易辨识的名字,比如 Master 节点就叫 master,Worker 节点就叫 worker:sudo vim /etc/hostname
在“/etc/docker/daemon.json”里把 cgroup 的驱动程序改成 systemd ,然后重启 Docker 的守护进程
cat <<EOF | sudo tee /etc/docker/daemon.json
{
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2"
}
EOF
sudo systemctl enable docker
sudo systemctl daemon-reload
sudo systemctl restart docker
让 Kubernetes 能够检查、转发网络流量,你需要修改 iptables 的配置,启用“br_netfilter”模块
cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
br_netfilter
EOF
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward=1 # better than modify /etc/sysctl.conf
EOF
sudo sysctl --system
修改“/etc/fstab”,关闭 Linux 的 swap 分区,提升 Kubernetes 的性能
sudo swapoff -a
sudo sed -ri '/\sswap\s/s/^#?/#/' /etc/fstab
修改软件源
sudo apt install -y apt-transport-https ca-certificates curl
curl <https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg> | sudo apt-key add -
cat <<EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list
deb <https://mirrors.aliyun.com/kubernetes/apt/> kubernetes-xenial main
EOF
sudo apt update
apt install 获取 kubeadm、kubelet、kubectl
sudo apt install -y kubeadm=1.23.3-00 kubelet=1.23.3-00 kubectl=1.23.3-00sudo apt install -y kubeadm=1.23.3-00 kubelet=1.23.3-00 kubectl=1.23.3-00
验证是否正确
kubeadm version
kubectl version --client
锁定软件版本
sudo apt-mark hold kubeadm kubelet kubectl
使用命令 kubeadm config images list
可以查看安装 Kubernetes 所需的镜像列表,参数 --kubernetes-version 可以指定版本号:
kubeadm config images list --kubernetes-version v1.23.3
使用 shell 下载 Kubernetes 组件镜像:
repo=registry.aliyuncs.com/google_containers
for name in `kubeadm config images list --kubernetes-version v1.23.3`; do
src_name=${name#k8s.gcr.io/}
src_name=${src_name#coredns/}
docker pull $repo/$src_name
docker tag $repo/$src_name $name
docker rmi $repo/$src_name
done
查看是否下载好:docker images
安装 Master 节点
kubeadm 的用法非常简单,只需要一个命令 kubeadm init 就可以把组件在 Master 节点上运行起来,不过它还有很多参数用来调整集群的配置,你可以用 -h 查看。用到的 3 个参数:
- --pod-network-cidr,设置集群里 Pod 的 IP 地址段。
- --apiserver-advertise-address,设置 apiserver 的 IP 地址,对于多网卡服务器来说很重要,可以指定 apiserver 在哪个网卡上对外提供服务。
- --kubernetes-version,指定 Kubernetes 的版本号
此文章为3月Day16学习笔记,内容来源于极客时间《Kubernetes 入门实战课》 这门课真的非常好,推荐大家看看