k8s

在CentOS 7上离线安装Kubernetes(K8s)

2020-12-10  本文已影响0人  渣渣曦

实现非联网环境下安装Kubernetes和Docker,首先需要在互联网机器上下载相关安装包,为下载到所有依赖包,需使用最小安装源,之前未安装过Kubernetes和Docker的系统。

互联网服务器上下载Kubernetes必备文件

配置系统

变更主机名称

vim /etc/hostname

1、最小化安装centos7,并换源

yum install wget
cd /etc/yum.repos.d
sudo mv CentOS-Base.repo CentOS-Base.repo.backup
sudo wget -O CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

2、vi /etc/sysconfig/network-scripts/ifcfg-<按tab键补齐>选第一个,然后修改该文件以下内容:

BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.3.20
NETMASK=255.255.255.0
GATEWAY=192.168.3.1
DNS1=8.8.8.8
DNS2=114.114.114.114

3、重启网络

systemctl restart NetworkManager

下载Docker安装包

1、安装yum存储库

yum install -y epel-release.noarch

2、安装Docker Yum源

yum-config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo

(找不到命令执行:yum -y install yum-utils)
3、下载Docker CE及依赖包

mkdir ~/docker
cd ~/docker
yumdownloader --resolve docker-ce

下载如下:


image.png

下载Kubernetes安装包

1、增加Kubernetes(K8s) yum源

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

2、下载Kubernetes及依赖包

mkdir ~/k8s
cd ~/k8s
yumdownloader --resolve kubelet kubeadm kubectl

下载文件如下:


image.png

打包Docker镜像

1、安装Docker

cd ~/docker
rpm -ivh --replacefiles --replacepkgs *.rpm

执行结果如下:


image.png

2、启动Docker

systemctl enable docker.service
systemctl start docker.service

配置代理(使用国内源可跳过该步)

国内拉取镜像需设置docker代理(命令为样例,需根据实际自行设置,也可以在下载时另换阿里源)
1、创建代理文件

mkdir /etc/systemd/system/docker.service.d
vi /etc/systemd/system/docker.service.d/http-proxy.conf

2、http-proxy.conf内容如下

[Service]
Environment="HTTP_PROXY=http://192.168.3.4:7890"

3、应用变更

systemctl daemon-reload

4、验证配置

systemctl show --property Environment docker

5、重启docker

systemctl restart docker

安装Kubernetes

1、安装离线包

systemctl stop firewalld
cd ~/k8s
rpm -ivh --replacefiles --replacepkgs ~/k8s/*.rpm

执行结果如下:


image.png

2、初始化

swapoff -a
kubeadm init --image-repository registry.aliyuncs.com/google_containers   

3、查看Kubernetes必要镜像

docker image ls -a
image.png

4、保存所有镜像到压缩包

docker save $(docker images -q) -o ~/k8s/k8simages.tar

5、保存镜像名称

docker images | sed '1d' | awk '{print $1 " " $2 " " $3}' > ~/k8s/k8simages.list

6、下载Flannel网络脚本

cd ~/k8s
wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

(国内不能直接下载配置代理下载)

wget -e use_proxy=yes -e https_proxy=http://192.168.3.4:7890 https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

以上完成所有在线下载任务,接着在离线服务器上安装Kubernetes

离线安装Docker及Kubernetes

安装Docker及恢复镜像

1、拷贝~/docker~/k8s到目标服务器上
2、安装docker

cd ~/docker
rpm -ivh --replacefiles --replacepkgs *.rpm

运行结果如下


image.png

3、运行docker

systemctl enable docker.service
systemctl start docker.service

4、加载Kubernetes镜像

docker load -i ~/k8s/k8simages.tar
image.png
image.png

5、恢复镜像名称及tag

while read REPOSITORY TAG IMAGE_ID
do
        echo "== Tagging $REPOSITORY $TAG $IMAGE_ID =="
        docker tag "$IMAGE_ID" "$REPOSITORY:$TAG"
done < ~/k8s/k8simages.list
image.png

安装Kubernetes

1、设置Kubernetes对应内核参数

cat > /etc/sysctl.d/kubernetes.conf << EOF
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF

2、重新加载参数

modprobe br_netfilter
sysctl --system

3、关闭swap区

swapoff -a
sed -e '/swap/s/^/#/g' -i /etc/fstab

4、Linux防火墙上放开Kubernetes端口
master主节点

firewall-cmd --permanent --add-port={6443,2379,2380,10250,10251,10252}/tcp

工作节点

firewall-cmd --permanent --add-port={10250,30000-32767}/tcp

重新加载防火墙配置

firewall-cmd --reload

设置SELinux模式为Permissive

setenforce 0
sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config

5、离线安装Kubernetes

rpm -ivh --replacefiles --replacepkgs ~/k8s/*.rpm
image.png

6、bash中启用kubectl

source <(kubectl completion bash)
kubectl completion bash > /etc/bash_completion.d/kubectl

7、初始化Kubernetes主节点

kubeadm init --image-repository registry.aliyuncs.com/google_containers

结果如下


image.png

8、执行建议脚本

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

9、启动kublet.service

systemctl enable kubelet.service
systemctl start kubelet.service

10、增加Flannel网络

kubectl apply -f ~/k8s/kube-flannel.yml

11、显示Kubernetes(K8s)集群节点

kubectl get nodes
image.png
上一篇下一篇

猜你喜欢

热点阅读