自建 Kubernetes 集群

2023-02-02 15:32:19 浏览数 (1)

基础安装(所有节点)

系统配置

代码语言:shell复制
# 开启 ipv4 转发功能
echo "1" > /proc/sys/net/ipv4/ip_forward

安装 containerd

代码语言:shell复制
# 安装 containerd
apt install -y containerd

# 安装 crictl,参考 https://github.com/kubernetes-sigs/cri-tools

VERSION="v1.26.0"
wget https://github.com/kubernetes-sigs/cri-tools/releases/download/$VERSION/crictl-$VERSION-linux-amd64.tar.gz
sudo tar zxvf crictl-$VERSION-linux-amd64.tar.gz -C /usr/local/bin
rm -f crictl-$VERSION-linux-amd64.tar.gz

# 设置 endpoint
crictl config runtime-endpoint unix:///run/containerd/containerd.sock
crictl config image-endpoint unix:///run/containerd/containerd.sock

# 检查 caontainerd 状态
systemctl status containerd

安装 kubelet kubeadm kubectl

代码语言:shell复制
# 添加 kubernetes 源证书
curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add - 

# 添加源
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOF

# 更新源
apt update

# 检索版本
apt-cache madison kubectl

# 安装对应版本
apt install -y kubelet=1.24.4-00 kubeadm=1.24.4-00 kubectl=1.24.4-00

# 插件版本
kubeadm version
kubectl version
kubelet --version

# 如果版本不对,可以卸载后再安装
apt remove kubeadm kubectl kubelet

启动 kubelet

代码语言:shell复制
systemctl enable kubelet.service
systemctl start kubelet.service

启动 master 节点

启动 kubelet

使用 kubeadm 初始化

代码语言:shell复制
# 9.133.33.133 为 master 节点 ip,需要保证工作节点可以通过此 ip 访问当 master 节点
# 如果是部署标准化环境,k8s 版本则需要根据标准化版本需求做适当更改
kubeadm init --kubernetes-version=1.24.4  
--apiserver-advertise-address=9.133.33.133   
--image-repository registry.aliyuncs.com/google_containers  
--service-cidr=10.10.0.0/16 --pod-network-cidr=10.122.0.0/16

遇到的问题

  • 如果报错 container runtime is not running, 则需要执行下面的操作,再执行 kubeadm 初始化
代码语言:shell复制
rm /etc/containerd/config.toml
systemctl restart containerd

初始化完成后会有两部分信息记录

  1. 把 kubeconfig 拷贝到当前环境
代码语言:txt复制
To start using your cluster, you need to run the following as a regular user:

  mkdir -p $HOME/.kube
  sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
  sudo chown $(id -u):$(id -g) $HOME/.kube/config
  1. 其他工作节点加入集群的命令行
代码语言:txt复制
kubeadm join 9.133.33.133:6443 --token xxxx.xxxxxx 
    --discovery-token-ca-cert-hash sha256:xxxxxxxx

如果忘记,也可以使用个下面指令获取加入集群命令行

代码语言:txt复制
kubeadm token create --print-join-command

安装 woker 节点

加入集群

(首先完成基础安装)

代码语言:txt复制
kubeadm join 9.133.33.133:6443 --token xxxx.xxxxxx 
        --discovery-token-ca-cert-hash sha256:xxxxxxxx

0 人点赞