搭建 k8s 集群


安装

# 使得 apt 支持 ssl 传输
sudo apt-get update && sudo apt-get install -y apt-transport-https curl

# 下载 gpg 密钥
sudo curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add -

# 添加 k8s 镜像源,需要在 root 权限执行
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOF

# 更新源列表
sudo apt-get update

# 下载 kubectl,kubeadm以及 kubelet
sudo apt-get install -y kubelet kubeadm kubectl

安装 docker 环境

安装 docker 环境

修改 docker cgroup driver 信息

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["你的镜像加速地址"],
  "exec-opts": [ "native.cgroupdriver=systemd" ]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

初始化 master 节点

关闭 swap

  • 临时关闭
    swapoff -a

  • 永久生效

    echo "vm.swappiness = 0" >> /etc/sysctl.conf
    sysctl -p

初始化主节点

kubeadm config images pull \
--image-repository registry.aliyuncs.com/google_containers

kubeadm init \
--apiserver-advertise-address=10.8.9.1 \
--image-repository registry.aliyuncs.com/google_containers \
--pod-network-cidr=10.244.0.0/16 \
--ignore-preflight-errors=all

部署 flannel 网络

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

修改启动配置

vim /etc/systemd/system/kubelet.service.d/10-kubeadm.conf

Environment="KUBELET_KUBECONFIG_ARGS=--network-plugin=cni --cni-conf-dir=/etc/cni/ --cni-bin-dir=/opt/cni/bin --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf"

master 配置 kubectl 环境

  • root
mkdir -p /root/.kube && \
cp /etc/kubernetes/admin.conf /root/.kube/config
  • 普通用户
# 添加用户
sudo adduser kube

# 添加 sudo 权限
sudo usermod -aG sudo kube

sudo mkdir -p /home/kube/.kube
sudo cp -i /etc/kubernetes/admin.conf /home/kube/.kube/config
sudo chown -R $(id -u kube):$(id -g kube) /home/kube/.kube

添加工作节点

kubeadm config images pull \
--image-repository registry.aliyuncs.com/google_containers

kubeadm join 10.8.9.1:6443 --token gn6beu.yi356hhss5e5eyqv \
    --discovery-token-ca-cert-hash sha256:a3306fe8e54f2a31e86b9261d4ef6de7150e652e6d440558d193447fed649019 \
    --ignore-preflight-errors=all

Flannel CNI 集成

  • 下载 CNI 插件

https://github.com/containernetworking/plugins/releases

sudo mkdir -p \
  /etc/cni/net.d \
  /opt/cni/bin \
  /var/lib/kubelet \
  /var/lib/kubernetes \
  /var/run/kubernetes

sudo wget https://github.com/containernetworking/plugins/releases/download/v0.7.1/cni-plugins-amd64-v0.7.1.tgz
sudo tar -xzvf cni-plugins-amd64-v0.7.5.tgz --directory /opt/cni/bin/

参考:
ubuntu 安装 k8s
kubeadm init 后 master 一直处于 notready 状态
Flannel网络部署


文章作者: 牟勇
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 牟勇 !
  目录