wtysos11 / blogWiki

Use to store public paper and organize them.
17 stars 4 forks source link

CentOS 7.5安装kubernetes多机集群 #207

Closed wtysos11 closed 3 years ago

wtysos11 commented 3 years ago

CentOS 7.5安装kubernetes多机集群

顺便吐槽一下,华为的主力虚拟机居然是arm架构的……因为是很久以前装的环境,我都忘了这个茬了。然后我花了一个下午,给一个arm架构和一个x86架构的机器装k8s。我还在疑惑为什么有一台机子做master的时候为什么开不起来……mmp一个arm架构用x86的镜像开起来个就有鬼了。我拆掉用docker的时候才发现不对劲。

本文为简易版本,原版 配置参考 官方教程

单机配置

docker安装

yum -y install docker

systemctl enable docker.service

安装kubernetes前准备

参考华为镜像站的Kubernetes,因为阿里的镜像站在升级维护所以没选,两者应该差不多。

# 备份 
cp  /etc/yum.repos.d/kubernetes.repo  /etc/yum.repos.d/kubernetes.repo.bak
# 修改文件。注意,$basearch可能无法解析,需要手动使用uname -a查看和设置
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://repo.huaweicloud.com/kubernetes/yum/repos/kubernetes-el7-$basearch
enabled=1
gpgcheck=1
repo_gpgcheck=0
gpgkey=https://repo.huaweicloud.com/kubernetes/yum/doc/yum-key.gpg https://repo.huaweicloud.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
# SELinux设置(还有交换设置和关防火墙,不过现在好像默认都是关着的)
setenforce 0
# 安装
yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes 
systemctl enable --now kubelet

开始安装

kubeadm init --image-repository='registry.cn-hangzhou.aliyuncs.com/google_containers' --apiserver-advertise-address=192.168.0.84 --pod-network-cidr=10.244.0.0/16 --token-ttl=0

其他下载镜像方法

使用kubeadm config images list列出所需的镜像,然后修改下列脚本的具体参数(可能是我用的系统镜像版本问题,我用的是centos-7.5,这个版本简直了)

#########################################################################
# File Name: pull_master_image.sh
# Description: pull_master_image.sh
# Author: zhangyi
# mail: 450575982@qq.com
# Created Time: 2019-07-31 21:38:14
#########################################################################
#!/bin/bash
kube_version=:v1.14.2
kube_images=(kube-proxy kube-scheduler kube-controller-manager kube-apiserver)
addon_images=(etcd:3.3.10 coredns:1.3.1 pause:3.1)

for imageName in ${kube_images[@]} ; do
  docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName-amd64$kube_version
  docker image tag registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName-amd64$kube_version k8s.gcr.io/$imageName$kube_version
  docker image rm registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName-amd64$kube_version
done

for imageName in ${addon_images[@]} ; do
  docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName
  docker image tag registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName k8s.gcr.io/$imageName
  docker image rm registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName
done

记得运行完之后要执行kubectl taint nodes --all node-role.kubernetes.io/master-,不然主节点不会执行任何其他pod