kubernetes安装

栏目:云苍穹知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

kubernetes安装

kubernetes安装包可以从金蝶云之家应用“小C”中下载,安装前请先下载安装包到一台执行机上。 # 1 通用环境检查 **请您严格按照如下步骤进行环境检查(疏忽任何一项都会导致最终环境异常):** - **公有云平台环境下:** - [ ] 编辑"k8s主机涉及到的安全组",使其**放行"k8s主机ip地址段"及"如下两个ip地址段"的全部协议的出和入(如私有云有安全组的概念,也需要操作)** - [ ] 操作安全组时,需要分别把TCP和UDP都放行 ![image1.webp](/download/0100328fac87d77441daaed9cfc2633ed51f.webp) > 如上两个网段的配置是在安装包里的config配置文件里进行配置的,后文会对这两个网段进行说明 上面两个网段配置的什么网段,安全组里就放行所配置的网段,图中只是举例 - **私有云平台环境下:** - [ ] **如私有云有安全组的概念和相关限制,也需要参考公有云平台下的安全组操作来进行** - **OpenStack环境下:关闭网卡(port)安全检查** > OpenStack的网卡默认会丢掉非本网卡ip地址的包,k8s集群内部会用到一些IP地址,有可能导致网卡无法转发 找到k8s主机的ID,然后在OpenStack主机上操作如下指令: `openstack port set --no-security-group HOST_ID` `openstack port set --disable-port-security HOST_ID` - **涉及到的k8s主机的主机名称要有意义,一定不能为初始的“localhost”** `hostnamectl set-hostname YOUR_HOSTNAME` - 如果**安装过程或者卸载过程提示红色警示信息,程序未中断即是正常运行** # 2 安装k8s集群 ### **配置文件说明** > 配置文件全名为"config" 将下载好的安装包,通过tar命令解压,安装包目录是"k8s-install" config文件格式是ansible的hosts文件的标准格式 - **必选配置** - [ ] K8S_MASTER k8s集群的master节点;默认的安装包考虑的场景是比较简单的,master节点上会部署etcd数据库,如果你需要一个高可用集群,可以参照下后文配置示例 > `172.18.7.145 ansible_ssh_user=kduser ansible_ssh_pass="KD@2020#cquat1222" ansible_become_pass="KD@2020#cquat1222" ansible_port="2222"` 如上是一个示例:`ansible_ssh_user`可以是root用户,也可以是普通用户,如果是普通用户需要确定该用户具有sudo权限 - [ ] K8S_NODE k8s集群的node节点;只是用来做工作节点的服务器 - [ ] K8S_VIP 这个配置默认是用"#"符号注释掉的,不会生效;如果不需要高可用场景,一定要把它用"#"符号注释掉 只有在我们需要高可用的时候,才将它取消掉注释,并且填上,我们提前为它规划好的VIP(虚拟IP地址) > 高可用说明: 这里的高可用指的是我们的master节点以及etcd数据库的高可用,大部分场景下我们需要高可用的时候,只需要三台master节点就可以搭建一个健壮程度很高的集群,这种场景下最多可以允许一个master节点彻底宕机,在一个节点宕机的情况下,仍然能保证集群的可用性 那么也就是,在我们需要一个高可用集群的时候,正确的配置方法应该是:将K8S_VIP注释取消,并且填上我们提前为它规划好的VIP(虚拟IP地址);然后在K8S_MASTER下配置**三个节点** - [ ] NETWORK_INTERFACE 要安装k8s集群的这些服务器的网卡接口,默认值是"eth0",配置时还需要根据不同的值具体修改下 - [ ] **POD_CIDR** 需要向网络管理员申请和报备,k8s内部的pod都会从这个地址段里进行分配 > 这个地址段要配置多少位掩码呢? 这个需要根据具体的k8s集群内的节点数量计算(master+node一共的); C类地址:24位掩码可以容纳4个节点,也就是2^8/64=4 B类地址:16位掩码可以容纳1024个节点,也就是2^16/64=1024 除了标准的有类地址,也可以根据具体需求来分配无类地址段,需要考虑以后有扩容节点的需求就可以 - [ ] **SVC_CIDR** 需要向网络管理员申请和报备,k8s内部的service都会从这个地址段里进行分配 > 这个指的就是内部service的地址段,通常情况下一个C类地址足够;也就是256个内部service,需要考虑以后有扩容集群的需求就可以 - **可选配置** - [ ] ADD_NODE 后续添加k8s的node节点时需要用到,首次安装k8s集群不需要考虑此配置; > 后续添加k8s的node节点时只需要将新添加的node配置到这里,其它的任何配置都不需要改动,因为需要旧的配置来找到master节点 所以对于config文件,在技术人员每次安装好集群之后,最好能够管理好,以及保证config文件的准确性 - [ ] DOCKER_DIR docker的数据目录,包含镜像等重要文件,配置的时候尽量要选择磁盘空间大的目录 - **其余未进行说明的配置,不需要关注和修改** ### 配置无忧:配置文件示例 - 现在有5台机器,需要搭建一个高可用集群(3台作为master节点,5台都作为node节点);标准配置如下 ```yaml ##k8s的master节点,不能和K8S_NODE重复 [K8S_MASTER] ##example: 172.18.7.145 ansible_ssh_user=root ansible_ssh_pass="KD@2020#cquat1222" ansible_become_pass="KD@2020#cquat1222" ansible_port="22" 172.25.1.148 ansible_ssh_user=test_in ansible_ssh_pass="123456" ansible_become_pass="123456" ansible_port="22" 172.25.1.149 ansible_ssh_user=test_in ansible_ssh_pass="123456" ansible_become_pass="123456" ansible_port="22" 172.25.1.150 ansible_ssh_user=test_in ansible_ssh_pass="123456" ansible_become_pass="123456" ansible_port="22" ##k8s的node节点,如果只有一个单节点的情况下,只写到K8S_MASTER,而K8S_NODE留空即可 [K8S_NODE] 172.25.1.151 ansible_ssh_user=test_in ansible_ssh_pass="123456" ansible_become_pass="123456" ansible_port="22" 172.25.1.152 ansible_ssh_user=test_in ansible_ssh_pass="123456" ansible_become_pass="123456" ansible_port="22" ##后续添加k8s的node节点时需要用到,首次安装k8s集群不需要考虑此配置 [ADD_NODE] [all:vars] ##K8S_VIP配置项,高可用场景下启用,如果您不需要高可用,请务必使用"#"注释,使其不生效 K8S_VIP=172.25.1.147 ##配置对应的网卡接口 NETWORK_INTERFACE=eth0 ##时间同步服务器设置,如果您不清楚这个用途,那么就不要修改,保持默认即可 NTP_SERVER=ntp.aliyun.com ##测试功能;是否启用cilium网络插件,值为"0"表示不启用,值为"1"启用,如果您不清楚该插件的用途,那么就保持默认值"0" CILIUM_UP=0 ##如下三个是CIDR网络配置 POD_CIDR=172.27.0.0/16 SVC_CIDR=172.29.0.0/16 ##docker容器的数据存放目录 DOCKER_DIR=/kingdee/docker ##用户不需要考虑以下所有配置 VERSION=1.19.12 KERNEL_VERSION=5.4.170-1.el7.elrepo.x86_64 [K8S_ALL:children] K8S_MASTER K8S_NODE ADD_NODE ``` - 现在有3台机器,需要搭建一个非高可用集群(一台作为master节点,三台都作为node节点);标准配置如下 ```yaml ##k8s的master节点,不能和K8S_NODE重复 [K8S_MASTER] ##example: 172.18.7.145 ansible_ssh_user=root ansible_ssh_pass="KD@2020#cquat1222" ansible_become_pass="KD@2020#cquat1222" ansible_port="22" 172.25.1.148 ansible_ssh_user=test_in ansible_ssh_pass="123456" ansible_become_pass="123456" ansible_port="22" ##k8s的node节点,如果只有一个单节点的情况下,只写到K8S_MASTER,而K8S_NODE留空即可 [K8S_NODE] 172.25.1.149 ansible_ssh_user=test_in ansible_ssh_pass="123456" ansible_become_pass="123456" ansible_port="22" 172.25.1.150 ansible_ssh_user=test_in ansible_ssh_pass="123456" ansible_become_pass="123456" ansible_port="22" ##后续添加k8s的node节点时需要用到,首次安装k8s集群不需要考虑此配置 [ADD_NODE] [all:vars] ##K8S_VIP配置项,高可用场景下启用,如果您不需要高可用,请务必使用"#"注释,使其不生效 #K8S_VIP=172.25.1.147 ##配置对应的网卡接口 NETWORK_INTERFACE=eth0 ##时间同步服务器设置,如果您不清楚这个用途,那么就不要修改,保持默认即可 NTP_SERVER=ntp.aliyun.com ##测试功能;是否启用cilium网络插件,值为"0"表示不启用,值为"1"启用,如果您不清楚该插件的用途,那么就保持默认值"0" CILIUM_UP=0 ##如下三个是CIDR网络配置 POD_CIDR=172.27.0.0/16 SVC_CIDR=172.29.0.0/16 ##docker容器的数据存放目录 DOCKER_DIR=/kingdee/docker ##用户不需要考虑以下所有配置 VERSION=1.19.12 KERNEL_VERSION=4.20.13-1.el7.elrepo.x86_64 [K8S_ALL:children] K8S_MASTER K8S_NODE ADD_NODE ``` - 现在有1台机器,需要搭建一个非高可用集群;标准配置如下 ```yaml ##k8s的master节点,不能和K8S_NODE重复 [K8S_MASTER] ##example: 172.18.7.145 ansible_ssh_user=root ansible_ssh_pass="KD@2020#cquat1222" ansible_become_pass="KD@2020#cquat1222" ansible_port="22" 172.25.1.148 ansible_ssh_user=test_in ansible_ssh_pass="123456" ansible_become_pass="123456" ansible_port="22" ##k8s的node节点,如果只有一个单节点的情况下,只写到K8S_MASTER,而K8S_NODE留空即可 [K8S_NODE] ##后续添加k8s的node节点时需要用到,首次安装k8s集群不需要考虑此配置 [ADD_NODE] [all:vars] ##K8S_VIP配置项,高可用场景下启用,如果您不需要高可用,请务必使用"#"注释,使其不生效 #K8S_VIP=172.25.1.147 ##配置对应的网卡接口 NETWORK_INTERFACE=eth0 ##时间同步服务器设置,如果您不清楚这个用途,那么就不要修改,保持默认即可 NTP_SERVER=ntp.aliyun.com ##测试功能;是否启用cilium网络插件,值为"0"表示不启用,值为"1"启用,如果您不清楚该插件的用途,那么就保持默认值"0" CILIUM_UP=0 ##如下三个是CIDR网络配置 POD_CIDR=172.27.0.0/16 SVC_CIDR=172.29.0.0/16 ##docker容器的数据存放目录 DOCKER_DIR=/kingdee/docker ##用户不需要考虑以下所有配置 VERSION=1.19.12 KERNEL_VERSION=4.20.13-1.el7.elrepo.x86_64 [K8S_ALL:children] K8S_MASTER K8S_NODE ADD_NODE ``` ### 执行安装 配置好config文件之后,先执行preinstall.sh; 然后会自动更新内核并且自动重启系统,数分钟后确定服务器启动完成后再执行install.sh 安装完毕,显示如下类似信息 ```yaml TASK [06-post_install : 检查k8s安装-2] *********************************************************************************************************************************************************************************************************** ok: [172.25.1.148] => { "result.stdout_lines": [ ">>>>您当前的集群有1个master节点", ">>>>您当前的集群有0个node节点", ">>>>集群内部dns解析正常", ">>>>集群内部网络通信正常", ">>>>集群安装成功~" ] } PLAY RECAP *********************************************************************************************************************************************************************************************************************************** 172.25.1.148 : ok=8 changed=5 unreachable=0 failed=0 skipped=1 rescued=0 ignored=0 ``` # 3 卸载k8s集群 **卸载k8s集群也**需要保持config文件的准确性**,然后执行`uninstall.sh`脚本,卸载完成后脚本会自动操作相关主机进行重启,进行更干净的清理** # 4 集群扩充新的节点 在之前配置的config文件的基础上,进行配置,目前只支持扩充node节点 ### 配置文件示例 如下配置是之前旧的config文件 ```yaml ##k8s的master节点,不能和K8S_NODE重复 [K8S_MASTER] ##example: 172.18.7.145 ansible_ssh_user=root ansible_ssh_pass="KD@2020#cquat1222" ansible_become_pass="KD@2020#cquat1222" ansible_port="22" 172.25.1.148 ansible_ssh_user=test_in ansible_ssh_pass="123456" ansible_become_pass="123456" ansible_port="22" ##k8s的node节点,如果只有一个单节点的情况下,只写到K8S_MASTER,而K8S_NODE留空即可 [K8S_NODE] ##后续添加k8s的node节点时需要用到,首次安装k8s集群不需要考虑此配置 [ADD_NODE] [all:vars] ##K8S_VIP配置项,高可用场景下启用,如果您不需要高可用,请务必使用"#"注释,使其不生效 #K8S_VIP=172.25.1.147 ##配置对应的网卡接口 NETWORK_INTERFACE=eth0 ##如下三个是CIDR网络配置 POD_CIDR=172.27.0.0/16 SVC_CIDR=172.29.0.0/16 ##docker容器的数据存放目录 DOCKER_DIR=/kingdee/docker ##用户不需要考虑以下所有配置 VERSION=1.19.12 KERNEL_VERSION=4.20.13-1.el7.elrepo.x86_64 [K8S_ALL:children] K8S_MASTER K8S_NODE ADD_NODE ``` 之前整个集群只有一个master节点,现在需要扩充三个node节点,修改后的配置如下 ```yaml ##k8s的master节点,不能和K8S_NODE重复 [K8S_MASTER] ##example: 172.18.7.145 ansible_ssh_user=root ansible_ssh_pass="KD@2020#cquat1222" ansible_become_pass="KD@2020#cquat1222" ansible_port="22" 172.25.1.148 ansible_ssh_user=test_in ansible_ssh_pass="123456" ansible_become_pass="123456" ansible_port="22" ##k8s的node节点,如果只有一个单节点的情况下,只写到K8S_MASTER,而K8S_NODE留空即可 [K8S_NODE] ##后续添加k8s的node节点时需要用到,首次安装k8s集群不需要考虑此配置 [ADD_NODE] 172.25.1.150 ansible_ssh_user=test_in ansible_ssh_pass="123456" ansible_become_pass="123456" ansible_port="22" 172.25.1.151 ansible_ssh_user=test_in ansible_ssh_pass="123456" ansible_become_pass="123456" ansible_port="22" 172.25.1.152 ansible_ssh_user=test_in ansible_ssh_pass="123456" ansible_become_pass="123456" ansible_port="22" [all:vars] ##K8S_VIP配置项,高可用场景下启用,如果您不需要高可用,请务必使用"#"注释,使其不生效 #K8S_VIP=172.25.1.147 ##配置对应的网卡接口 NETWORK_INTERFACE=eth0 ##如下三个是CIDR网络配置 POD_CIDR=172.27.0.0/16 SVC_CIDR=172.29.0.0/16 ##docker容器的数据存放目录 DOCKER_DIR=/kingdee/docker ##用户不需要考虑以下所有配置 VERSION=1.19.12 KERNEL_VERSION=4.20.13-1.el7.elrepo.x86_64 [K8S_ALL:children] K8S_MASTER K8S_NODE ADD_NODE ``` config文件配置好之后,执行k8s-install目录下的`add_node.sh`,该脚本会自动更新节点内核、重启、加入k8s集群操作,不需要人工干预。

kubernetes安装

kubernetes安装包可以从金蝶云之家应用“小C”中下载,安装前请先下载安装包到一台执行机上。# 1 通用环境检查**请您严格按照如下步骤进...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息