介绍


正常部署K8s时,一般情况下单位服务器是不联网的,需要离线安装。本文就讲一下在没有互联网到企业内网部署Kubernetes集群

安装前准备


  • 安装并启动docker/containerd(1.20+安装containerd),已经安装了会重启docker/containerd. 高版本离线包自带docker/containerd,如没安装docker/containerd会自动安装.
  • 下载kubernetes 离线安装包.
  • 下载最新版本sealos.
  • 务必同步服务器时间
  • 主机名不可重复,需要修改主机的主机名
  • master节点CPU必须2C以上

环境信息

主机名

IP地址

服务器密码

centos7-01

192.168.55.101

123456

centos7-02

192.168.55.102

123456

centos7-03

192.168.55.103

123456

下面离线包


只需要准备好服务器,在任意一台服务器上执行下面命令即可

下载并安装sealos, sealos是个golang的二进制工具,直接下载拷贝到bin目录即可, release页面也可下载

$ wget -c https://sealyun.oss-cn-beijing.aliyuncs.com/latest/sealos

下载离线资源包

$ wget -c https://sealyun.oss-cn-beijing.aliyuncs.com/05a3db657821277f5f3b92d834bbaf98-v1.22.0/kube1.22.0.tar.gz

安装k8s


把sealos和kube1.22.0.tar.gz都上传到服务器

[root@centos7-01 ~]# ls /usr/bin/sealos
/usr/bin/sealos
[root@centos7-01 ~]# ls kube1.22.0.tar.gz
kube1.22.0.tar.gz

执行sealos安装k8s集群

sealos init –passwd ‘123456’ \
–master 192.168.55.101 \
–node 192.168.55.102 \
–node 192.168.55.103 \
–pkg-url /root/kube1.22.0.tar.gz \
–version v1.22.0
.
.
.
.
16:07:20 [INFO] [ssh.go:13] [ssh][192.168.55.102:22] mkdir -p /etc/kubernetes/manifests
16:07:20 [DEBG] [ssh.go:25] [ssh][192.168.55.103:22]command result is:
16:07:20 [DEBG] [ssh.go:25] [ssh][192.168.55.102:22]command result is:
16:07:21 [INFO] [scp.go:159] [ssh][192.168.55.102:22]transfer total size is: 0MB
16:07:21 [INFO] [scp.go:159] [ssh][192.168.55.103:22]transfer total size is: 0MB
16:07:21 [DEBG] [ssh.go:58] [192.168.55.103:22] rm -rf /root/kube
16:07:21 [DEBG] [ssh.go:58] [192.168.55.102:22] rm -rf /root/kube
16:07:21 [DEBG] [print.go:21] ==>SendPackage==>KubeadmConfigInstall==>InstallMaster0==>JoinMasters==>JoinNodes
16:07:21 [INFO] [print.go:26] sealos install success.
16:07:21 [INFO] [init.go:96]
___ ___ ___ ___ ___ ___
/\ \ /\ \ /\ \ /\__\ /\ \ /\ \
/::\ \ /::\ \ /::\ \ /:/ / /::\ \ /::\ \
/:/\ \ \ /:/\:\ \ /:/\:\ \ /:/ / /:/\:\ \ /:/\ \ \
_\:\\ \ \ /::\\:\ \ /::\\:\ \ /:/ / /:/ \:\ \ _\:\\ \ \
/\ \:\ \ \__\ /:/\:\ \:\__\ /:/\:\ \:\__\ /:/__/ /:/__/ \:\__\ /\ \:\ \ \__\
\:\ \:\ \/__/ \:\~\:\ \/__/ \/__\:\/:/ / \:\ \ \:\ \ /:/ / \:\ \:\ \/__/
\:\ \:\__\ \:\ \:\__\ \::/ / \:\ \ \:\ /:/ / \:\ \:\__\
\:\/:/ / \:\ \/__/ /:/ / \:\ \ \:\/:/ / \:\/:/ /
\::/ / \:\__\ /:/ / \:\__\ \::/ / \::/ /
\/__/ \/__/ \/__/ \/__/ \/__/ \/__/

看到sealos的logo就带表安装成功了。

查看k8s配置文件


配置文件一般会在当前用户下 的 .kube目录内

[root@centos7-01 ~]# cat .kube/config
apiVersion: v1
clusters:

  • cluster:
    certificate-authority-data: LS0tLSxxxxxQo=
    server: https://apiserver.cluster.local:6443
    name: kubernetes
    contexts:
  • context:
    cluster: kubernetes
    user: kubernetes-admin
    name: kubernetes-admin@kubernetes
    current-context: kubernetes-admin@kubernetes
    kind: Config
    preferences: {}
    users:
  • name: kubernetes-admin
    user:
    client-certificate-data: LS0txxxxxxxS0K
    client-key-data: LS0tLS1CRUxxxxxxxtLQo=

使用Lens链接K8s集群


把上面配置里的server: https://apiserver.cluster.local:6443 集群地址改成IP地址,我这里没有配置域名
在这里插入图片描述

查看k8s集群节点


在这里插入图片描述