Kubernetes部署与卸载

安装

参考Kubernetes指南

创建 Kubernetes cluster(单机版)最简单的方法是 minikube。国内网络环境下也可以考虑使用 kubeasz 的 AllInOne 部署。

基于kubekey部署

支持的环境

Linux 发行版

  • Ubuntu 16.04, 18.04, 20.04, 22.04
  • Debian Bullseye, Buster, Stretch
  • CentOS/RHEL 7
  • AlmaLinux 9.0
  • SUSE Linux Enterprise Server 15

建议使用 Linux Kernel 版本: 4.15 or later
可以通过命令 uname -srm 查看 Linux Kernel 版本。

Kubernetes 版本

  • v1.19:   v1.19.15
  • v1.20:   v1.20.10
  • v1.21:   v1.21.14
  • v1.22:   v1.22.15
  • v1.23:   v1.23.10 (default)
  • v1.24:   v1.24.7
  • v1.25:   v1.25.3

要求和建议

  • 最低资源要求(仅对于最小安装 KubeSphere):
    • 2 核虚拟 CPU
    • 4 GB 内存
    • 20 GB 储存空间

/var/lib/docker 主要用于存储容器数据,在使用和操作过程中会逐渐增大。对于生产环境,建议 /var/lib/docker 单独挂盘。

  • 操作系统要求:
    • SSH 可以访问所有节点。
    • 所有节点的时间同步。
    • sudo/curl/openssl 应在所有节点使用。
    • docker 可以自己安装,也可以通过 KubeKey 安装。
    • Red Hat 在其 Linux 发行版本中包括了 SELinux,建议关闭SELinux或者将SELinux的模式切换为Permissive[宽容]工作模式
  • 依赖
    socat 和 conntrack

用法

简单安装

  • 安装

首先下载kubeKey文件,解压即得到可执行文件kk

export KKZONE=cn
# 创建一个docker 的 container runtime 的 Kubernetes 集群
sudo ./kk create cluster  --container-manager containerd --with-kubernetes v1.26.5
# 输出以下文字代表安装成功
Greetings, KubeKey!
[upload-certs] Storing the certificates in Secret "kubeadm-certs" in the "kube-system" Namespace
[upload-certs] Using certificate key:
36fca4b99ef0ac1ea4504f7e99284709236a3a101b876774a1964f70e1edcc58
13:23:11 CST [DeployNetworkPluginModule] Deploy calico
13:23:11 CST stdout: [node15]
poddisruptionbudget.policy/calico-kube-controllers created
serviceaccount/calico-kube-controllers created
serviceaccount/calico-node created
serviceaccount/calico-cni-plugin created
11:55:21 CST [AddonsModule] Install addons
11:55:21 CST success: [LocalHost]
11:55:21 CST Pipeline[CreateClusterPipeline] execute successfully
Installation is complete.

Please check the result using the command:

        kubectl get pod -A
  • 卸载
./kk delete cluster
  • 升级
./kk upgrade [--with-kubernetes version] [--with-kubesphere version] 

高级安装

可以使用高级安装来控制自定义参数或创建多节点集群。具体来说,通过指定配置文件来创建集群。

如果无法访问 https://storage.googleapis.com, 请先执行 export KKZONE=cn.

  1. 首先,创建一个示例配置文件

    ./kk create config [--with-kubernetes version] [--with-kubesphere version] [(-f | --filename) path]
    

    例子:

    • 使用默认配置创建一个示例配置文件。您也可以指定文件名称或文件所在的文件夹。

      ./kk create config [-f ~/myfolder/config-sample.yaml]
      
    • 同时安装 KubeSphere

      ./kk create config --with-kubesphere
      
  2. 根据您的环境修改配置文件 config-sample.yaml

注意: 由于 Kubernetes 暂不支持大写 NodeName, worker 节点名中包含大写字母将导致后续安装过程无法正常结束

  1. 使用配置文件创建集群。

    ./kk create cluster -f ~/myfolder/config-sample.yaml
    

添加节点

将新节点的信息添加到集群配置文件,然后应用更改。

./kk add nodes -f config-sample.yaml

删除节点

通过以下命令删除节点,nodename指需要删除的节点名。

./kk delete node <nodeName> -f config-sample.yaml

删除集群

您可以通过以下命令删除集群:

  • 如果您以快速入门(all-in-one)开始:
./kk delete cluster
  • 如果从高级安装开始(使用配置文件创建的集群):
./kk delete cluster [-f config-sample.yaml]

集群升级

单节点集群

升级集群到指定版本。

./kk upgrade [--with-kubernetes version] [--with-kubesphere version] 
  • --with-kubernetes 指定kubernetes目标版本。
  • --with-kubesphere 指定kubesphere目标版本。
多节点集群

通过指定配置文件对集群进行升级。

./kk upgrade [--with-kubernetes version] [--with-kubesphere version] [(-f | --filename) path]
  • --with-kubernetes 指定kubernetes目标版本。
  • --with-kubesphere 指定kubesphere目标版本。
  • -f 指定集群安装时创建的配置文件。

注意: 升级多节点集群需要指定配置文件. 如果集群非kubekey创建,或者创建集群时生成的配置文件丢失,需要重新生成配置文件,或使用以下方法生成。

Getting cluster info and generating kubekey’s configuration file (optional).

./kk create config [--from-cluster] [(-f | --filename) path] [--kubeconfig path]
  • --from-cluster 根据已存在集群信息生成配置文件.
  • -f 指定生成配置文件路径.
  • --kubeconfig 指定集群kubeconfig文件.
  • 由于无法全面获取集群配置,生成配置文件后,请根据集群实际信息补全配置文件。

例如获取集群配置文件并保存到指定文件

./kk create config --from-cluster -f default_kk_cluster.yaml

启用 kubectl 自动补全

KubeKey 不会启用 kubectl 自动补全功能。请参阅下面的指南并将其打开:

先决条件:确保已安装 bash-autocompletion 并可以正常工作。

# 安装 bash-completion
apt-get install bash-completion

# 将 completion 脚本添加到你的 ~/.bashrc 文件
echo 'source <(kubectl completion bash)' >>~/.bashrc

# 将 completion 脚本添加到 /etc/bash_completion.d 目录
kubectl completion bash >/etc/bash_completion.d/kubectl

更详细的参考可以在这里找到。

问题

The connection to the server localhost:8080 was refused - did you specify the right host or port?

执行命令时提示该问题

kubectl get pods 
kubectl version -o json

解决

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

修改主机名

hostnamectl set-hostname node15
#导出节点配置,修改主机名
kubectl get node master -o yaml > node.yaml

下载失败

!/bin/bash

while yes|sudo ./kk create cluster  --container-manager containerd --with-kubernetes v1.26.5; [[ $? -ne 0 ]];
do
  echo "Result unsuccessful"
  sleep 1
done

echo "Result successful"

Unable to connect to the server: x509: certificate signed by unknown authority (possibly because of “crypto/rsa: verification error” while trying to verify candidate authority certificate “kubernetes”)

参考

mkdir $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值