Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >有关中国Azure Stack部署K8S的疑难解答

有关中国Azure Stack部署K8S的疑难解答

作者头像
盆盆
发布于 2019-03-05 06:21:24
发布于 2019-03-05 06:21:24
6590
举报

提示

要参加微信课堂以及日常技术交流,请给我们发微信(微信号:markpah),请注明加入以下哪个群:

  • 微软Azure Stack交流微信群
  • 微软Azure Docker交流微信群

哪位朋友已经在Azure Stack里部署过K8S了吗?

昨天官网已经发布了如何在Azure Stack里部署K8S的文档:

https://docs.microsoft.com/en-us/azure/azure-stack/azure-stack-solution-template-kubernetes-cluster-add

不过国内的朋友,请您留步,因为该文档并不适合中国区的用户,主要是因为伟大的防火墙的原因,请暂移尊驾参考盆盆的文章(您可以在公众号里回复k8s即可看到盆盆的这篇文章)。

核心步骤

核心步骤就是生成ARM模板后,确保作以下修改:

以下是对AzureDeployParameters.json文件进行修改:

  • "dockerEngineDownloadRepo": { "value": "https://mirror.kaiyuanshe.cn/docker-engine/apt/repo/"
  • 同时搜索k8s-gcrio.azureedge.net,将其改为“ crproxy.trafficmanager.net:6000/google_containers ”。
  • 并将以下参数改为: "kubernetesTillerSpec": { "value": "crproxy.trafficmanager.net:6000/kubernetes-helm/tiller:v2.8.1"

同时修改azuredeploy.json文件的CustomData部分,这部分将会通过Cloud Init执行相关的配置脚本:

  • 搜索--pod-infra-container-image,将其改为以下的格式(共有2处): --pod-infra-container-image=crproxy.trafficmanager.net:6000/google_containers/pause-amd64:3.1
  • 指定docker hub mirror,搜索 retrycmd_if_failure 20 10 apt-get install -y ebtables docker-engine,在其后添加以下的语句(共有2处): \n- curl -sSL WebPath/dockermirror.sh | sh -s 请注意,其中的dockermirror.sh是指您用来更改docker mirror的脚本。可以使用DaoCloud或者其他docker mirror,如果不设置mirror的话,那么大概率无法从docker hub下载约512MB的定制HyperKubeImage。该脚本的内容可以是以下格式,并将其上传到Azure中国的Blob里。

sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://YourMirror"] } EOF

疑难问题

请注意,不管是用ASDK,还是多节点的Azure Stack,请确保一定要使用最新的1803版本,否则会遇到Cloud Init执行失败的问题!

盆盆就曾经遇到在1802版本里,节点在每次执行Cloud init时,节点虚拟机都会自动重启,导致Cloud init里的runcmd脚本执行失败,由于这个脚本的任务是安装docker engine,这会导致节点连docker都无法安装。所以CustomScript扩展的Provision.sh脚本也无法执行。

这时候如果检查Agent虚拟机的syslog日志,可以发现以下的事件:

hv_utils: Shutdownrequest received - graceful shutdown initiated

紧接着Agent就重启,导致Cloud init失败(默认仅执行一次)

在Azure Stack服务器节点上查看日志,可以发现这个关机操作,是由Hyper-V集成服务的关机功能执行的,也就是说这是由Azure Stack的Hypervisor发起的操作,而不是节点自己。事件里的GUID是虚拟机的GUID。

在虚拟机的Hyper-V属性对话框里可以看到该虚拟机就是Master节点。Agent也会一样。

这时候,可以在节点虚拟机上执行以下命令,就可以继续执行cloud init,有机会完成后续的操作:

sudo /usr/bin/cloud-initsingle -n cc_scripts_user

这时候盆盆想到,既然是这个关机事件是由Hyper-V Hypervisor发起的,是通过Hyper-V集成服务执行的(就是Linux虚拟机里的hv_utils),那么我只要在Cloud init的runcmd脚本里添加以下的内容,每次执行runcmd的时候,自动停用hv_utils服务,等runcmd执行到最后一步,再启用hv_utils,不就可以避免系统重启了吗?

kill-1 `pidof hv_kvp_daemon`

kill-1 `pidof hv_vss_daemon`

rmmod hv_utils

但是结果很遗憾,这个操作会导致节点虚拟机直接失联,无法通过SSH访问。

所以,还是直接升级到最新的1803版本吧!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-05-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 华来四Azure混合云 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
在Azure Stack上部署Kubernetes
要参加微信课堂以及日常技术交流,请给我们发微信(微信号:markpah),请注明加入以下哪个群:
盆盆
2019/03/05
7740
在Azure Stack上部署Kubernetes
干货分享-Win2019上的Linux容器和Azure Stack上的K8
要参加微信课堂以及日常技术交流,请给我们发微信(微信号:markpah),请注明加入以下哪个群:
盆盆
2019/03/05
1.5K0
干货分享-Win2019上的Linux容器和Azure Stack上的K8
Azure部署Azure Stack技巧
Azure Stack混合云的POC正式版已经发布了,盆盆已经写了十余篇有关Azure Stack的文章,您可以点击公众号右下方的菜单去阅读,有图有真相!
盆盆
2019/04/24
1.3K0
Azure部署Azure Stack技巧
直播视频发布:Windows上的Linux容器和Azure混合云中的Kubernetes(k8s)
要参加微信课堂以及日常技术交流,请给我们发微信(微信号:markpah),请注明加入以下哪个群:
盆盆
2019/03/05
6700
直播视频发布:Windows上的Linux容器和Azure混合云中的Kubernetes(k8s)
K8s集群v1.26.1版本的简单部署实践
使用cri-dockerd+calico+kubernetes-dashboard
yuanfan2012
2023/02/23
2.5K0
K8s集群v1.26.1版本的简单部署实践
CentOS单机安装k8s并部署.NET 6程序
学习云原生,k8s 是一个基础,为了做一些实验,单机部署是最方便的,下面将介绍在 CentOS 中单机安装 k8s ,并将一个 .NET 6 的程序发布到 k8s 中。
oec2003
2022/03/29
1.1K0
CentOS单机安装k8s并部署.NET 6程序
K8s集群中的Windows节点,这样搭建快速搞定!
K8s 1.14版增加了对windows节点的生产级支持,从1.9就有了对windows的实验性支持,灵雀云在多个客户环境有过实践,去除平台相关的内容后整理成文档,分享给大家。
灵雀云
2019/07/30
3K0
K8s集群中的Windows节点,这样搭建快速搞定!
k8s
搭建三个master节点和两个worker节点还有一个虚拟ip,分别是192.168.200.128(master),192.168.200.129(master),192.168.200.130(master),192.168.200.131(worker),192.168.200.132(worker),192.168.200.16(vip)
花落花相惜
2021/12/04
7600
在 Docker Desktop 中启用 K8s 服务
作为目前事实上的容器编排系统标准,K8s 无疑是现代应用的基石,很多同学入门可能直接就被卡到第一关,从哪去弄个 K8s 的环境
程序员宇说
2021/04/22
4.1K0
Azure上一键部署Azure Stack
要参加微信课堂以及日常技术交流,请给我们发微信(微信号:markpah),请注明加入以下哪个群:
盆盆
2019/03/05
3400
Azure上一键部署Azure Stack
k8s系列教程-初识k8s
搭建k8s开发环境有三种,一种是通过docker desktop + Minikube 来直接在你的电脑上搭建,这种搭建方式存在的问题比较多,很多功能不支持,不建议使用。另外一种方式是通过Docker Desktop安装k8s,这种k8s是单机版的,master 和node 是同一个节点也就是本机,这种方式安装的k8s基本上能满足我们的学习需求,初期学习阶段可以使用这种安装方式。还有就是通过前文介绍 vagrant 制作box 然后创建集群安装,这种安装方式是最完整也是最麻烦的。现在先介绍第二种安装方式,第二种方式是把k8s 镜像拉取下来并运行容器,但因为国内网络的问题,镜像依赖拉不下来,我们可以上github 拉阿里云的k8s-for-docker-desktop 到本地安装。
六个核弹
2022/12/23
1.3K0
k8s系列教程-初识k8s
kubeadm 安装 k8s 集群(版本自选)
互联网早期,企业将服务直接部署在物理机上;后来由于一系列变化,经历了虚拟化部署,开始了 容器部署之路,Docker 无疑是其中的佼佼者。
看、未来
2022/08/11
8251
kubeadm 安装 k8s 集群(版本自选)
k8s 知识总结
K8S(Kubernetes缩写)是容器编排引擎,用于实现自动化运维管理容器。 核心功能:
willsonchen
2024/01/22
4310
k8s部署实战
节点名称如果都是lcoal,会造成后续加入 kubeadm join 时,pods pending,名称名称相同
AndreKzWu
2022/09/19
9340
「走进k8s」kubeadm搭建 Kubernetes1.15.1集群环境(14)
安装花了2天时间,总结了各种坑,就是为了让大家在学习k8s的时候不在从入门到放弃。
IT架构圈
2019/08/15
2.2K0
K8S 之 kubeadm 安装
Kubeadm 是一个工具,它提供了 kubeadm init 以及 kubeadm join 这两个命令作为快速创建 kubernetes 集群的最佳实践。
YP小站
2020/06/04
1.6K0
谁再说不会 K8S 高可用部署,就把这个给他甩过去!
文档:https://kubernetes.io/zh-cn/docs/home/
民工哥
2022/10/27
1.4K0
谁再说不会 K8S 高可用部署,就把这个给他甩过去!
云原生学习系列(一)安装篇:win10安装docker与k8s
docker,k8s作为云原生必会技术,虽然8102年就已经基本成熟,但是现在学习也不晚!!
志亮
2021/07/09
1.3K0
云原生学习系列(一)安装篇:win10安装docker与k8s
简单三分钟,本地搭建 k8s
使用 minikube 在本地搭建 k8s 已经比以前要简单很多了。本文,我们通过简短的三分钟来重现一下在本地搭建 k8s 实验环境的步骤。
newbe36524
2021/09/05
2.4K0
学习kubernetes,从快速搭建k8s集群开始
本系列文章,我们将在Ubuntu Server 18.04上搭建k8s环境进行入门学习。为了使用原生的Ubuntu Server 18.04,我们将使用multipass来创建多台Ubuntu Server 18.04虚拟环境。也就是说,如果你想完整参考本系列博客学习,你电脑上应当安装并能正常运行multipass,如果你想了解multipass基本操作,可以参考我写的另一篇博客:【使用Multipass管理Ubuntu虚拟机】。本文演示k8s集群搭建步骤,并不涉及k8s基础知识,你可能对文章的一些专业词语感到默生,但没有关系,我们在后面会循序渐进地介绍k8s知识。
极客开发者
2022/01/18
4660
相关推荐
在Azure Stack上部署Kubernetes
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文