
# kops安装
Kops是一种用于管理Kubernetes集群的工具，可以在华为云平台上部署和运行Kubernetes集群。
在华为云上安装Kops，需要完成以下步骤：
- 准备一个运行Kops的主机 可以选择使用虚拟机或者裸金属服务器作为Kops的主机，需要确保主机满足以下条件：
  - 至少有2个CPU
  
  - 至少有4GB内存
  
  - 安装有Docker和kubectl
   
配置kops的配置文件
```
cd /data/opt/multimodalinteraction-full-v0.7.0-beta2-kubernetes
cp kopstools-config/kopstools.yaml.default kopstools-config/kopstools.yaml
```
修改配置kopstools-config/kopstools.yaml：
```
### Kops Tools Configuration Settings
kopstools:
tool-type: kubectl
# k8s 认证文件的路径，当kubeprovider为external时，需要配置具体的kubeconfig的文件路径，为internal时代表由一键部署工具部署k8s集群，
# 此处保持默认值即可，一键部署安装完k8s集群后会自动回写
kubeconfig: /data/jenkins/test-tools/kops-tools/admin.conf
crd-file-create-time-out-seconds: 60 #如果待部署模块中包含crd资源文件，安装crd后的检查超时时间，超时未创建成功则失败退出
# k8s 服务提供类型，external 表示外部提供，无需安装；internal 表示一键部署提供安装
kubeprovider: 'internal'
local-node: # 本机信息
regular-user: vibot
passwd: vibot!1234
ssh-port: 22
host: 172.16.20.148
docker-root: /data
bridge-subnet: 10.126.1.1/24
skip-check-docker-version: false #为true时，如果本机存在docker则不再检查docker的版本，继续执行
nodes:
- host: 172.16.20.148
ssh-user: vibot
ssh-port: 22
ssh-passwd: vibot!1234
base-dir: /data
role:
- 'controlplane'   # 节点角色，外部集群可能需事先做好标记，内置安装是角色会一并设置，无需担心
- 'worker'
global-config:
namespace: "" # 服务部署的namespace，默认 default
ingress-domain-suffix: xxx
registry: #（helm安装）
type: "external" # external, internal二选一
host: "registry01.wezhuiyi.com"
user: "admin"
password: "xxxx"
internal: # 私有化部署，提供下列配置项后，将自行部署（实现里面有默认配置）
service:
type: NodePort
nodePort: 58710
persistence:
# 开启持久卷有三种形式，hostPath，storageClass，existingClaim，在不指定情况下默认是 hostPath
enabled: true
# - 代指默认的 storage class，如果无默认则需指定
# storageClass: '-'
# 指定 pvc 作为存储点，使用时需事先申请 pvc，，
# existingClaim: ''
# existingClaim 与 storageClass 二选一, 二者区别是 storageClass 可以自动创建 pvc，existingClaim 需要事先创建 pvc
# accessMode: 'ReadWriteOnce'
# size: 10Gi
# 端口检查
service-dependencies: {}
# 其他插件
# plugin.plugin1: {}
# plugin.plugin2: {}
# plugin.plugin2: {}
# 初始化主控节点服务器，如果使用的账号为普通账号且未有sudo root权限，则需要联系机器管理员，添加 sudo 权限执行以下命令，如下：
bash kops-tools.sh init-node
# 安装K8S集群环境
bash kops-tools.sh kube-manage install
# 私有镜像仓库安装
bash kops-tools.sh registry  install
```
不使用registry单机安装:
```
find base/images/ -name '*.gz' -exec docker load -i {} \; -print
# 跳过本地load镜像，镜像仓库已经存在镜像，可以使用该步骤
./kops-tools.sh install -m all --create-namespace --skip-load-image true
```
其他的安装方法
```
# 方式一：
# 执行镜像load动作，安装前会load本地镜像并且推送到配置的镜像仓库
./kops-tools.sh install -m all --create-namespace
# 方式二：
# 跳过本地load镜像，镜像仓库已经存在镜像，可以使用该步骤
./kops-tools.sh install -m all --create-namespace --skip-load-image true
# 方式三：
# 只安装指定的模块
bash kops-tools.sh install -m A -m B
```
