KS8集群搭建(测试)

搭建虚拟机

安装vagrant virtualbox

下载 https://vagrantcloud.com/centos/boxes/7/versions/2004.01/providers/virtualbox.box

vagrant add box C:\vagrant\virtualbox.box --name centos/7

编写 Vagrantfile

Vagrant.configure("2") do |config|
	# 遍历
   (1..3).each do |i|
        config.vm.define "k8s-node#{i}" do |node|
            # 设置虚拟机的Box
            node.vm.box = "centos/7"

            # 设置虚拟机的主机名
            node.vm.hostname="k8s-node#{i}"

            # 设置虚拟机的IP  100 101 102
            node.vm.network "private_network", ip: "192.168.56.#{50+i}", netmask: "255.255.255.0"

            # 设置主机与虚拟机的共享目录
            # node.vm.synced_folder "~/Documents/vagrant/share", "/home/vagrant/share"

            # VirtaulBox相关配置
            node.vm.provider "virtualbox" do |v|
                # 设置虚拟机的名称
                v.name = "k8s-node#{i}"
                # 设置虚拟机的内存大小
                v.memory = 4096
                # 设置虚拟机的CPU个数
                v.cpus = 4
				# 指定只使用百分之50的CPU频率
				# v.customize = ["modifyvm", :id, "--cpuexecutioncap", "50"]
            end
        end
   end
end

查看ip命令

ip addr

3.关闭防火墙

检查防火墙状态:systemctl status firewalld
关闭防火墙:systemctl stop firewalld
设置开机禁用防火墙:systemctl disable firewalld.service

vagrant global-status
vagrant ssh 

安装K8S

https://www.kubesphere.io/zh/docs/v3.3/quick-start/all-in-one-on-linux/

步骤 1:准备 Linux 机器

若要以 All-in-One 模式进行安装,您仅需参考以下对机器硬件和操作系统的要求准备一台主机。

硬件推荐配置

操作系统最低配置
Ubuntu 16.04, 18.04, 20.04, 22.042 核 CPU,4 GB 内存,40 GB 磁盘空间
Debian Buster, Stretch2 核 CPU,4 GB 内存,40 GB 磁盘空间
CentOS 7.x2 核 CPU,4 GB 内存,40 GB 磁盘空间
Red Hat Enterprise Linux 72 核 CPU,4 GB 内存,40 GB 磁盘空间
SUSE Linux Enterprise Server 15/openSUSE Leap 15.22 核 CPU,4 GB 内存,40 GB 磁盘空间

备注

以上的系统要求和以下的教程适用于没有启用任何可选组件的默认最小化安装。如果您的机器至少有 8 核 CPU 和 16 GB 内存,则建议启用所有组件。有关更多信息,请参见启用可插拔组件

节点要求

  • 节点必须能够通过 SSH 连接。
  • 节点上可以使用 sudo/curl/openssl/tar 命令。

容器运行时

您的集群必须有一个可用的容器运行时。如果您使用 KubeKey 搭建集群,KubeKey 会默认安装最新版本的 Docker。或者,您也可以在创建集群前手动安装 Docker 或其他容器运行时。

支持的容器运行时版本
Docker19.3.8 +
containerd最新版
CRI-O(试验版,未经充分测试)最新版
iSula(试验版,未经充分测试)最新版

依赖项要求

KubeKey 可以将 Kubernetes 和 KubeSphere 一同安装。针对不同的 Kubernetes 版本,需要安装的依赖项可能有所不同。您可以参考以下列表,查看是否需要提前在节点上安装相关的依赖项。

依赖项Kubernetes 版本 ≥ 1.18Kubernetes 版本 < 1.18
socat必须可选但建议
conntrack必须可选但建议
ebtables可选但建议可选但建议
ipset可选但建议可选但建议

信息

KubeKey 是用 Go 语言开发的一款全新的安装工具,代替了以前基于 ansible 的安装程序。KubeKey 为用户提供了灵活的安装选择,可以分别安装 KubeSphere 和 Kubernetes 或二者同时安装,既方便又高效。

网络和 DNS 要求

  • 请确保 /etc/resolv.conf 中的 DNS 地址可用,否则,可能会导致集群中的 DNS 出现问题。
  • 如果您的网络配置使用防火墙规则或安全组,请务必确保基础设施组件可以通过特定端口相互通信。建议您关闭防火墙。有关更多信息,请参见端口要求
  • 支持的 CNI 插件:Calico 和 Flannel。其他插件也适用(例如 Cilium 和 Kube-OVN 等),但请注意它们未经充分测试。

提示

  • 建议您的操作系统处于干净状态(不安装任何其他软件),否则可能会发生冲突。
  • 如果您无法从 dockerhub.io 下载容器镜像,建议提前准备仓库的镜像地址(即加速器)。有关更多信息,请参见为安装配置加速器

步骤 2:下载 KubeKey

请按照以下步骤下载 KubeKey。

先执行以下命令以确保您从正确的区域下载 KubeKey。

export KKZONE=cn

执行以下命令下载 KubeKey。

curl -sfL https://get-kk.kubesphere.io | VERSION=v3.0.7 sh -

备注

在您下载 KubeKey 后,如果您将其传至新的机器,且访问 Googleapis 同样受限,在您执行以下步骤之前请务必再次执行 export KKZONE=cn 命令。

备注

执行以上命令会下载最新版 KubeKey,您可以修改命令中的版本号下载指定版本。

kk 添加可执行权限:

chmod +x kk

步骤 3:开始安装

在本快速入门教程中,您只需执行一个命令即可进行安装,其模板如下所示:

./kk create cluster [--with-kubernetes version] [--with-kubesphere version]

若要同时安装 Kubernetes 和 KubeSphere,可参考以下示例命令:

./kk create cluster --with-kubernetes v1.22.12 --with-kubesphere v3.3.2

备注

  • 安装 KubeSphere 3.3 的建议 Kubernetes 版本:v1.20.x、v1.21.x、* v1.22.x、* v1.23.x 和 * v1.24.x。带星号的版本可能出现边缘节点部分功能不可用的情况。因此,如需使用边缘节点,推荐安装 v1.21.x。如果不指定 Kubernetes 版本,KubeKey 将默认安装 Kubernetes v1.23.10。有关受支持的 Kubernetes 版本的更多信息,请参见支持矩阵
  • 一般来说,对于 All-in-One 安装,您无需更改任何配置。
  • 如果您在这一步的命令中不添加标志 --with-kubesphere,则不会部署 KubeSphere,KubeKey 将只安装 Kubernetes。如果您添加标志 --with-kubesphere 时不指定 KubeSphere 版本,则会安装最新版本的 KubeSphere。
  • KubeKey 会默认安装 OpenEBS 为开发和测试环境提供 LocalPV 以方便新用户。对于其他存储类型,请参见持久化存储配置

执行该命令后,KubeKey 将检查您的安装环境,结果显示在一张表格中。有关详细信息,请参见节点要求依赖项要求。输入 yes 继续安装流程。

步骤 4:验证安装结果

输入以下命令以检查安装结果。

kubectl logs -n kubesphere-system $(kubectl get pod -n kubesphere-system -l 'app in (ks-install, ks-installer)' -o jsonpath='{.items[0].metadata.name}') -f

输出信息会显示 Web 控制台的 IP 地址和端口号,默认的 NodePort 是 30880。现在,您可以使用默认的帐户和密码 (admin/P@88w0rd) 通过 <NodeIP>:30880 访问控制台。

#####################################################
###              Welcome to KubeSphere!           ###
#####################################################

Console: http://192.168.0.2:30880
Account: admin
Password: P@88w0rd

NOTES:
  1. After you log into the console, please check the
     monitoring status of service components in
     "Cluster Management". If any service is not
     ready, please wait patiently until all components 
     are up and running.
  2. Please change the default password after login.

#####################################################
https://kubesphere.io             20xx-xx-xx xx:xx:xx
#####################################################

备注

您可能需要配置端口转发规则并在安全组中开放端口,以便外部用户访问控制台。

登录至控制台后,您可以在系统组件中查看各个组件的状态。如果要使用相关服务,您可能需要等待部分组件启动并运行。您也可以使用 kubectl get pod --all-namespaces 来检查 KubeSphere 相关组件的运行状况。

启用可插拔组件(可选)

本指南仅适用于默认的最小化安装。若要在 KubeSphere 中启用其他组件,请参见启用可插拔组件

开发端口 外部访问

在这里插入图片描述

在这里插入图片描述

编辑指定对外访问端口

在这里插入图片描述

部署有状态应用

创建Docker 启动参数 配置启动参数变量

挂载相关配置文件

配置devops

https://www.kubesphere.io/zh/docs/v3.3/pluggable-components/devops/

jenkins 官网

https://www.jenkins-zh.cn/wechat/articles/2020/06/2020-06-30-kubesphere-devops-using-jenkins/

在安装后启用 DevOps
以 admin 用户登录控制台,点击左上角的平台管理,选择集群管理。

点击定制资源定义,在搜索栏中输入 clusterconfiguration,点击搜索结果查看其详细页面。

信息

定制资源定义(CRD)允许用户在不新增 API 服务器的情况下创建一种新的资源类型,用户可以像使用其他 Kubernetes 原生对象一样使用这些定制资源。
在自定义资源中,点击 ks-installer 右侧的 ,选择编辑 YAML。

在该 YAML 文件中,搜索 devops,将 enabled 的 false 改为 true。完成后,点击右下角的确定,保存配置。

devops:
  enabled: true # 将“false”更改为“true”。

直接安装k8s 不使用kubesphere进行安装

安装K8S

直接安装k8s 不使用kubesphere进行安装

尝试使用该版本进行版本进行安装 v1.27

https://www.modb.pro/db/623683

不使用docker 安装 v1.28

https://zhuanlan.zhihu.com/p/660899097

重置k8s

kubeadm reset

crictl依次查找容器运行时,当查找第一个 unix:///var/run/dockershim.sock 没有找到,所以报错了,需要你手动指定当前kubernetes的容器运行时,使用什么,例如:

kubernetes 1.24+ 之后,dockershim已经变成了cri-docker,所以你需要执行:

crictl config runtime-endpoint unix:///var/run/cri-dockerd.sock

如果你的容器运行时,已经换成了containerd,则换成containerd的,如:

crictl config runtime-endpoint unix:///var/run/containerd/containerd.sock

之后,你在执行就好了。

另外:生成的配置在cat /etc/crictl.yaml,可以随时修改。

原贴:
https://www.orchome.com/16616

禁用 swap

swapoff -a

更换yum源

https://segmentfault.com/a/1190000039099774

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.tencent.com/repo/centos7_base.repo
# 更新缓存
yum clean all
yum makecache

查看K8S最新版本

https://kubernetes.io/zh-cn/docs/tasks/tools/install-kubectl-linux/

kubeadm init --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.28.2 --apiserver-advertise-address 10.0.12.6 --pod-network-cidr=10.244.0.0/16 --token-ttl 0
yum install -y kubelet-1.28 kubectl-1.28 kubeadm-1.28
curl -LO https://dl.k8s.io/release/v1.28.3/bin/linux/amd64/kubectl
cat >>/etc/docker/daemon.json <<EOF
{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2",
  "storage-opts": [
    "overlay2.override_kernel_check=true"
  ]
}
EOF

kubeadm join 10.0.12.6:6443 --token abcdef.0123456789abcdef
–discovery-token-ca-cert-hash sha256:0e70c103da32e521b08e6102a035977b2e2945fcade84728b73ea1c75974edbb

卸载K8S

https://www.orchome.com/16614

CentOS / RHEL / Fedora

sudo yum remove -y kubeadm kubectl kubelet kubernetes-cni kube*   
sudo yum autoremove -y

Copy

  • autoremove:当使用yum install命令安装一枚软件包时,yum会将该软件包连同其所有依赖包一并安装到本机。但当我们使用yum remove命令卸载一枚已安装软件包时,yum默认只会移除你所指定的那枚软件包,并不会移除该包的相关依赖包。自从Fedora 18之后,可以使用yum autoremove命令来干净卸载软件包。

Systemd服务

systemctl stop kubelet
systemctl disable kubelet

Copy

配置清理

rm -rf /etc/systemd/system/kubelet.service
rm -rf /etc/systemd/system/kube*

Copy

最后,手动清理kubernetes配置

sudo rm -rf ~/.kube
sudo rm -rf /etc/kubernetes/
sudo rm -rf /var/lib/kube*
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值