教你如何在中国区加速部署k8s,且实现自定义设置拥有k8s镜像的仓库与其命名空间

教你如何在中国区加速部署k8s,且实现自定义设置拥有k8s镜像的仓库与其命名空间。

概述

Kubernetes是一个强大的容器编排工具,帮助用户在可伸缩性系统上可靠部署和运行容器化应用。在容器领域内,K8s已毋庸置疑成为了容器编排和管理的社区标准,连Docker官方都已宣布支持K8s。在容器编排领域的战火已然分出结果,尘埃落定,K8s得到了包括Google、Huawei、Microsoft、IBM、AWS、Rancher、Redhat、CoreOS等在内的容器玩家的一致认可。

Rancher容器管理平台原生支持K8s,使用户可以简单轻松地部署K8s集群。

然而对于中国玩家而言,由于谷歌镜像仓库的原因,很多时候K8S的使用体验并不顺滑。在往期发布的文章(《Rancher-k8s加速安装文档》)中,我们有讲解过如何通过修改应用商店地址来实现加速部署kubernetes。虽然这种方法能够实现kubernetes的加速部署,但是因为自定义的商店仓库无法与官方仓库实时同步,很多组件(网络、健康检查等)将无法保证及时的更新。因此,为了解决这个问题,我们在官方catalog模板的基础上做了修改,增加了可以自定义仓库地址和命名空间的功能。这样,我们在部署kubernetes时可以自定义设置拥有kubernetes镜像的仓库与其命名空间。

环境准备

安装前准备(重要):

  • Rancher-server:v1.6.11现在还是rc版本,安装过程中可能会有一些错误提示。
  • 如果出现这个警告,需要删除所有容器并更换Docker版本,Docker尽量选择1.12.3

  • 配置好各节点间的hosts文件;
  • 如果是克隆的主机,请检查有没有/var/lib/rancher/state/这个文件夹,如果有则删除;
  • 如果以前有通过Rancher安装过kubernetes,请执行命令:
docker rm -f -v $(docker ps -aq) 
docker volume rm $(docker volume ls)
rm -rf /var/etcd/
  • 如果选择vxlan网络部署,需要在/etc/hosts文件有:’本机IP localhost’这一行,如果没有则添加;
  • 禁止swap: sudo swapoff –a(此命令为临时禁止,永久禁止参考https://www.xtplayer.cn/2017/10/3162)(重要);
  • 其他注意事项请参考:https://kubernetes.io/docs/setup/independent/install-kubeadm/;

操作说明

启动Rancher server

通过docker命令运行rancher server 并打印启动日志;

Sudo docker run -d --restart always name rancher-server -p 8080:8080 rancher/server: v1.6.11-rc3 && sudo docker logs -f rancher-server

容器初始化完成后,通过主机IP:8080访问WEB。

kubernetes环境管理

登录Rancher web后,按照标准流程我们应该去系统管理中做一些基础配置,因我们这里是演示环境,所以省去这一步。

进入环境管理,准备添加环境模板

点击添加环境模板,

点击编辑设置后,在弹出的页面中,更改如下几个参数:

私有仓库地址:registry.cn-shenzhen.aliyuncs.com
AAONS组件命名空间:rancher_cn
kubernetes-helm命名空间:rancher_cn

参数设置完,点击页面下方的设置按钮返回环境模板编辑页面。

保持环境模板其他参数不变,点击页面下方的创建按钮。

回到环境管理,点击添加环境,最后点击创建

这样就用刚刚创建的模板创建了一个K8S环境

添加节点

切换到刚刚创建的环境

现在状态是这样,点击添加主机,

因为是第一次添加主机,系统会要求你确认节点注册地址,我们直接点击保存。

复制代码到三个node上执行

安装完毕:

仪表盘

应用栈

主机视图

进入基础架构 | 容器视图,取消勾选 显示系统容器

正常状态,非系统容器应该有14个。

部署演示示例

进入Dashdorad

页面右上角,点击创建,创建一个示例服务NGINX

点击Overview查看:

点击外部入口访问应用:

### kubernetes 无法从阿里云拉取容器镜像解决方案 当遇到 Kubernetes (k8s) 无法从阿里云拉取容器镜像的情况时,可能的原因涉及多个方面。以下是详细的排查和解决方法: #### 1. 检查凭证配置 确保已经正确设置了访问阿里云容器镜像仓库所需的凭证。这通常意味着要设置 Docker 的私有仓库认证信息。 对于 Kubernetes 来说,可以通过 Secret 对象来保存这些敏感数据,并将其关联至 Pod 或者 Deployment 资源定义中以便于自动注入认证详情[^4]。 ```yaml apiVersion: v1 kind: Secret metadata: name: regcred data: .dockerconfigjson: <base64-encoded-auth> type: kubernetes.io/dockerconfigjson ``` 其中 `<base64-encoded-auth>` 是经过 base64 编码后的 `.docker/config.json` 文件内容,该文件包含了登录到阿里云镜像库所需的身份验证令牌。 #### 2. 网络连接状况确认 如果网络策略阻止了与外部世界的通信,则可能导致无法成功获取远程资源。检查集群内的网络安全组规则以及任何防火墙设置是否允许出站流量到达目标地址[^3]。 另外还需注意的是,在某些情况下,即使能够解析域名并建立 TCP 连接,也可能因为 DNS 解析错误或是 IP 黑名单等问题而失败。因此建议测试从节点直接 ping 或 curl 测试能否正常访问 `registry.cn-hangzhou.aliyuncs.com` 等官方提供的公共入口站点。 #### 3. 使用加速器服务优化体验 考虑到国内公网带宽成本较高速度不稳定等因素影响,推荐开启阿里云所提供的镜像同步/分发加速特性——即所谓的“中国区专属”的镜像缓存机制[^2]。此功能可以在不改变原有部署流程的前提下显著缩短首次构建时间,并减少因跨地域传输带来的不确定性风险。 一旦启用了上述提到的 ECI 场景下的镜像预热措施之后,理论上讲应该不会再存在明显的延迟现象发生。 #### 4. 更新组件版本兼容性 最后但同样重要的一点就是关注所使用的 K8S 版本及其插件生态链之间的相互匹配程度。随着技术迭代更新迅速发展变化着的新特性和修复过的 bug 可能会带来意想不到的好处或者是破坏性的更改。所以定期升级基础架构软件包总是有益无害的选择之一。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值