《Kubernetes 入门实战课》 学习笔记 day8

69 阅读2分钟

大家好,我是砸锅。一个摸鱼八年的后端开发。熟悉 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 入门实战课》 这门课真的非常好,推荐大家看看