Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

yum离线安装kubernetes集群 #28

Open
apersonw opened this issue May 8, 2021 · 0 comments
Open

yum离线安装kubernetes集群 #28

apersonw opened this issue May 8, 2021 · 0 comments

Comments

@apersonw
Copy link
Owner

apersonw commented May 8, 2021

一、安装kubelet kubeadm kubectl

 #在能联网的服务器上
#1、安装yumdownloader
yum install yum-utils -y
设置yum源
curl -o /etc/yum.repos.d/Centos-7.repo http://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/docker-ce.repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
       http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

yum clean all && yum makecache

2、获取k8s安装包及依赖,也可以使用命令repotrack下载所有的rpm包

mkdir /tmp/k8s
yumdownloader --resolve --destdir /tmp/k8s libxml2-python.x86_64 0:2.9.1-6.el7.5 python-chardet.noarch 0:2.2.1-3.el7 python-kitchen.noarch 0:1.1.1-5.el7 libxml2.x86_64 0:2.9.1-6.el7.5
yumdownloader --resolve --destdir /tmp/k8s kubelet-1.19.4 kubeadm-1.19.4 kubectl-1.19.4 --disableexcludes=kubernetes
yumdownloader --resolve --destdir /tmp/k8s createrepo
tar zcf k8s.tar.gz /tmp/k8s

#注:也可使用repotrack下载离线rpm

3、将k8s.tar.gz上传到离线服务器上/tmp目录下

#在离线服务器上
#1、解压压缩包
tar zxf /tmp/k8s.tar.gz

#2、制作离线源
cd /tmp/k8s
#若是libxml2冲突,则使用更新命令rpm -Uvh
rpm -Uvh libxml2-2.9.1-6.el7.5.x86_64.rpm
rpm -ivh libxml2-python-2.9.1-6.el7.5.x86_64.rpm
rpm -ivh deltarpm-3.6-3.el7.x86_64.rpm
rpm -ivh python-deltarpm-3.6-3.el7.x86_64.rpm
rpm -ivh createrepo-0.9.9-28.el7.noarch.rpm

rpm -ivh libnetfilter_cthelper-1.0.0-11.el7.x86_64.rpm
rpm -ivh libnetfilter_cttimeout-1.0.0-7.el7.x86_64.rpm
rpm -ivh libnetfilter_queue-1.0.2-2.el7_2.x86_64.rpm
rpm -ivh conntrack-tools-1.4.4-7.el7.x86_64.rpm
cd /tmp
createrepo k8s

#tip:更新仓库命令
createrepo -v --update k8s

关闭swap
swapoff -a
# 防止开机自动挂载 swap 分区
sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
#3、编辑yum文件
vi /etc/yum.repos.d/k8s.repo
[k8s]
name=k8s
baseurl=file:///tmp/k8s
gpgcheck=0
enabled=1
#4、安装k8s,禁用CentOS基本仓库
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes

二、安装Master

# 只在 master 节点执行
# 替换 x.x.x.x 为 master 节点的内网IP
# export 命令只在当前 shell 会话中有效,开启新的 shell 窗口后,如果要继续安装过程,请重新执行此处的 export 命令
export MASTER_IP=10.253.144.192
# 替换 apiserver.demo 为 您想要的 dnsName
export APISERVER_NAME=k8s-master1.host
# Kubernetes 容器组所在的网段,该网段安装完成后,由 kubernetes 创建,事先并不存在于您的物理网络中
export POD_SUBNET=10.100.0.1/16
echo "${MASTER_IP}    ${APISERVER_NAME}" >> /etc/hosts


cat <<EOF > ./kubeadm-config.yaml
apiVersion: kubeadm.k8s.io/v1beta2
kind: ClusterConfiguration
kubernetesVersion: v1.19.4
imageRepository: registry.aliyuncs.com/k8sxio
controlPlaneEndpoint: "${APISERVER_NAME}:6443"
networking:
  serviceSubnet: "10.96.0.0/16"
  podSubnet: "${POD_SUBNET}"
  dnsDomain: "cluster.local"
EOF

三、加入Master

kubeadm join k8s-master1.host:6443 --token r96ug5.p4seuoqxj9xlu46y
--discovery-token-ca-cert-hash sha256:430454b1fc3da4d4ad01b13e9b9d8a7bf2a1eb85da4b431e3fd0cf1672178357
--control-plane --certificate-key d017dd100df9e187ccf3ee48f9950e59e41bfd55570a3ce12de2afef1fea84cb

四、加入Node

# 只在 master 节点执行,获得 join命令参数
kubeadm token create --print-join-command

# 修改 hostname
hostnamectl set-hostname k8s-worker1.host

# 设置 hostname 解析
echo "127.0.0.1   $(hostname)" >> /etc/hosts

# 只在 worker 节点执行
# 替换 x.x.x.x 为 master 节点的内网 IP
export MASTER_IP=10.253.144.192
# 替换 apiserver.demo 为初始化 master 节点时所使用的 APISERVER_NAME
export APISERVER_NAME=k8s-master1.host
echo "${MASTER_IP}    ${APISERVER_NAME}" >> /etc/hosts
#启动kubelet服务
systemctl enable kubelet.service

# 只在 master 节点执行,获得 join命令参数,获取到下面的join命令
kubeadm token create --print-join-command
kubeadm join
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant