本文主要用于在内网(离线)环境安装k8s集群;linux环境 centos7.6

主要步骤有:

  1. 安装docker
  2. 创建dokcer 私有镜像库 registry
  3. 安装kubernetes
  4. 安装flannel

1.离线安装docker

下载离线安装包https://download.docker.com/linux/centos/7/x86_64/stable/Packages/

docker-ce-cli-18.09.7-3.el7.x86_64.rpm

docker-ce-18.09.7-3.el7.x86_64.rpm

container-selinux-2.107-1.el7_6.noarch.rpm

containerd.io-1.2.2-3.el7.x86_64.rpm

  1. 上传到指定服务器,安装命令  rpm -ivh *.rpm
  2. docker info 查看docker信息
  3. 修改cgoupdriver为systemd与k8b保持一致,vim /etc/docker/daemon.json

{

"registry-mirrors": ["https://registry.docker-cn.com"],

"exec-opts": ["native.cgroupdriver=systemd"]

}

  1. systemctl  daemon-reload
  2. systemctl  restart docker
  3. 设置开机启动  systemctl enabel docker

2.创建dokcer 私有镜像库 registry

1.在有外网环境的docker中下载镜像,并启动;

docker pull registry:2

2.从image导出镜像

docker save -o registry.tar registry:2

3.上传registry.tar到离线服务器,导入

docker load -I registry

4.启动

docker run -d -v /registry:/var/lib/registry -p 5000:5000 --restart=always --name registry registry:2

5.修改k8s集群节点的dokcer daemon.json  支持https

{

"registry-mirrors": ["https://registry.docker-cn.com"],

"exec-opts": ["native.cgroupdriver=systemd"],

"insecure-registries": ["10.209.68.12:5000"]

}

systemctl  daemon-reload

systemctl  restart docker

3.安装k8s

环境准备

  1. 关闭 防火墙、SeLinux、swap

# 在 master 节点和 worker 节点都要执行

systemctl stop firewalld

systemctl disable firewalld

setenforce 0

sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config

# 关闭 swap

swapoff -a

yes | cp /etc/fstab /etc/fstab_bak

cat /etc/fstab_bak |grep -v swap > /etc/fstab

  1. hostnamectl set-hostname master

需要设置其他主机名称时,可将 master 替换为正确的主机名node1、node2即可。

  1. 配置内核参数,将桥接的IPv4流量传递到iptables的链

cat > /etc/sysctl.d/k8s.conf <<EOF

net.bridge.bridge-nf-call-ip6tables = 1

net.bridge.bridge-nf-call-iptables = 1

EOF

sysctl –system

2,安装kubeadm/kubectl/kubelet

在有网络的服务器上下载需要的rpm安装包

  1. 配置kubeadm源

# 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

  1. yum install --downloadonly --downloaddir=/home/centos/k8s kubeadm kubectl kubelet
  2. 上传rpm包到离线服务器 安装

rpm -ivh *.rpm

设置开机启动 systemctl enable kubelet.service

  1. 获取镜像列表

# kubeadm config images list

k8s.gcr.io/kube-apiserver:v1.18.0

k8s.gcr.io/kube-controller-manager:v1.18.0

k8s.gcr.io/kube-scheduler:v1.18.0

k8s.gcr.io/kube-proxy:v1.18.0

k8s.gcr.io/pause:3.2

k8s.gcr.io/etcd:3.4.3-0

k8s.gcr.io/coredns:1.6.7

  1. 离线镜像

编写脚本,从阿里云下载镜像

# cat pull-images.sh

#!/bin/bash

images=(

kube-apiserver:v1.18.0

kube-controller-manager:v1.18.0

kube-scheduler:v1.18.0

kube-proxy:v1.18.0

pause:3.2

etcd:3.4.3-0

coredns:1.6.7

)

for imageName in ${images[@]};

do

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/${imageName}

docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/${imageName} k8s.gcr.io/${imageName}

docker rmi registry.cn-hangzhou.aliyuncs.com/google_containers/${imageName}

done

  1. 执行脚本,然后查看镜像

# docker images

REPOSITORY                           TAG                 IMAGE ID            CREATED             SIZE

k8s.gcr.io/kube-proxy                v1.18.0             43940c34f24f        7 days ago          117MB

k8s.gcr.io/kube-apiserver            v1.18.0             74060cea7f70        7 days ago          173MB

k8s.gcr.io/kube-controller-manager   v1.18.0             d3e55153f52f        7 days ago          162MB

k8s.gcr.io/kube-scheduler            v1.18.0             a31f78c7c8ce        7 days ago          95.3MB

k8s.gcr.io/pause                     3.2                 80d28bedfe5d        6 weeks ago         683kB

k8s.gcr.io/coredns                   1.6.7               67da37a9a360        2 months ago        43.8MB

k8s.gcr.io/etcd                      3.4.3-0             303ce5db0e90        5 months ago

  1. 打包镜像

编写脚本打包镜像

# cat save-images.sh

#!/bin/bash

images=(

kube-apiserver:v1.18.0

kube-controller-manager:v1.18.0

kube-scheduler:v1.18.0

kube-proxy:v1.18.0

pause:3.2

etcd:3.4.3-0

coredns:1.6.7

)

for imageName in ${images[@]};

do

docker save -o `echo ${imageName}|awk -F ':' '{print $1}'`.tar k8s.gcr.io/${imageName}

done

压缩下载,上传到离线服务器;

tar czvf kubeadm-images-1.18.0.tar.gz *.tar

  1. 导入镜像

在安装节点分别导入离线镜像或者放入私有仓库使用

# cat load-image.sh

#!/bin/bash

ls /root/kubeadm-images-1.18.0 > /root/images-list.txt

cd /root/kubeadm-images-1.18.0

for i in $(cat /root/images-list.txt)

do

docker load -i $i

done

导入镜像

# ./load-image.sh

3,初始化master节点

kubeadm init --apiserver-advertise-address 10.209.69.12 --apiserver-bind-port 6443 --kubernetes-version 1.18.0 --pod-network-cidr 10.244.0.0/16 --service-cidr 10.1.0.0/16

mkdir -p $HOME/.kube

sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

sudo chown $(id -u):$(id -g) $HOME/.kube/config

4,加入子节点

Then you can join any number of worker nodes by running the following on each as root:

kubeadm join 10.209.69.12:6443 --token voj8z6.ytej05mfnul5gci7 \

--discovery-token-ca-cert-hash sha256:d12c6150f5752238e8eabe81403ff4defaf2aeb1a1c159ed7310e027b367b57b

安装flannel

下载https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml文件

把里面依赖的image都在有网络环境中下载下来;

导入私有镜像库;

docker tag xxx:vxxx 10.209.69.12:5000/xxx:vxxx

docker push 10.209.69.12:5000/xxx:vxxx

修改yml中镜像为私有镜像库中的包

部署

kubectl apply -f flannel.yml

查看节点  是否为ready

kubectl get nodes

从零开始离线安装k8s集群相关推荐

  1. linux下离线安装k8s集群1.19.4附带nfs存储(kubeadm方式)

    linux下离线安装k8s集群1.19.4附带nfs存储 活动地址:毕业季·进击的技术er  一,环境简介 kubernetes-1.19.4集群部署计划 序号 服务器配置 IP地址 操作系统 备注 ...

  2. Centos离线安装Kubernetes集群

    目录 kuberadmin离线安装K8s集群 环境准备 基础环境配置 安装docker 准备基础镜像以及安装包 镜像 集群初始化 设置.kube/config 安装网络组件 加入node节点 验证集群 ...

  3. breeze 可视安装 k8s 集群

    breeze 可视安装 k8s 集群 官方文档: https://github.com/wise2c-devops/breeze/blob/master/BreezeManual-CN.md bree ...

  4. 使用sealos安装K8S集群时,需确保节点的swap是关闭的

    使用sealos安装K8S集群时,需确保节点的swap是关闭的,否则会安装失败

  5. 使用KubeKey安装K8S集群

    KubeKey [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9a5Ji2nE-1625797190511)(https://github.com/kubesphere ...

  6. yum安装k8s集群(单master两个node、阿里云镜像源)

    yum安装k8s集群(单master节点方式) 一.环境准备 1.系统要求 按量付费阿里云主机三台 要求:centos7.6~7.8:以下为 https://kuboard.cn/install/in ...

  7. [提示]普通用户使用sealos安装k8s集群的话,默认还是会装到root用户的home目录/root

    如果使用普通用户,使用sealos安装k8s集群的话,默认还是会装到root用户的home目录/root kubeadm init --config=/root/kubeadm-config.yaml ...

  8. Blazor+Dapr+K8s微服务之基于WSL安装K8s集群并部署微服务

     前面文章已经演示过,将我们的示例微服务程序DaprTest1部署到k8s上并运行.当时用的k8s是Docker for desktop 自带的k8s,只要在Docker for desktop中启用 ...

  9. k8s 安装_二进制安装k8s集群总结

    在之前文章里我们以学习为目的介绍了k8s集群的手动二进制安装,包括: ssl证书制作. docker的安装. 网络通讯组件flannel的安装. K8s基础组件的安装(etcd,master组件api ...

最新文章

  1. [20170914]tnsnames.ora的管理.txt
  2. uniapp里的mounted_uni-app 生命周期函数执行顺序
  3. Xcode SVN配置
  4. Android中四种启动模式,最容易理解的小白教程
  5. 14.ZooKeeper Java API 使用样例
  6. Spiral Matrix I II
  7. 基础向:关于异常(Exception)面试常会问到的问题
  8. 定时器mia是什么意思_MIA的完整形式是什么?
  9. 前端错误日志上报相关实践
  10. 苹果将削减iPhone SE及AirPods产量 iPhone 13也要求减产
  11. CYQ.Data 轻量数据层之路 使用篇-MAction 数据查询 视频 D (二十一)
  12. 微信开发——本地测试环境搭建
  13. b区计算机科学与技术调剂院校,B区调剂院校梳理!希望你用不到,但一定要收藏!...
  14. [MAC] 小技巧– 取消屏幕缩放功能,以免不小心误触
  15. CSDN早报-2019-04-29
  16. 多个excel合并为一个excel的多个sheet
  17. solidity 函数修饰器 modifier
  18. 财务报表分析01.主要财务报表
  19. Erebus 0.5 发布,2D 实时角色扮演游戏
  20. 细说网络负载均衡技术

热门文章

  1. 富文本编辑器粘贴复制Word
  2. 博世BOSCH EDI DESADV发货通知详解
  3. Prophet文档中文翻译--multiplicative_seasonality
  4. Docker - 使用Docker Compose部署应用
  5. oracle trim函数用法详解
  6. 在MySQL中note是什么意思_在Jupyter noteb中从MySQL中检索巨大的数据表
  7. jfinal save 超过9个字段以上就会出现数组下标越界
  8. 移动开发(IOS) – iOS系统架构
  9. 【PP】PP 模块配置
  10. ubuntu18.04安装Cosmos Scaffold遇到的问题及解决方案