惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

美团技术团队
Blog — PlanetScale
Blog — PlanetScale
阮一峰的网络日志
阮一峰的网络日志
M
MIT News - Artificial intelligence
月光博客
月光博客
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
U
Unit 42
博客园_首页
WordPress大学
WordPress大学
H
Hackread – Cybersecurity News, Data Breaches, AI and More
J
Java Code Geeks
F
Fortinet All Blogs
腾讯CDC
罗磊的独立博客
IT之家
IT之家
I
InfoQ
V
V2EX
博客园 - 叶小钗
A
About on SuperTechFans
Y
Y Combinator Blog
C
Check Point Blog
量子位
Martin Fowler
Martin Fowler
Vercel News
Vercel News

陈少文的网站

巨变与机遇的未来十年 Kubernetes 平台管理软件压力测试方案 使用镜像部署 Hexo 静态页面 终于等到你 - GitHub 镜像仓库服务(ghcr.io) 一起来学 Go --(6)Interface 一起来学 Go --(5)Goroutine 和 Channel 什么是函数式编程 如何在 Kubernetes 集群集成 Kata 柯里化与偏函数 使用 PyGithub 自动创建 Label 软件产品是团队能力的输出 Helm 2 、Helm 3 比较 IoT 变现 Kubernetes 中的 DNS 服务 国内的 Helm 镜像源 Harbor 使用自签证书支持 Https 访问 DevOps 工具链之 Prow 如何使用 kfctl 安装 Kubeflow VS Code 无法下载 Go 插件的工具包 工程师更应具有服务精神 你不知道的 Docker 使用技巧 使用 Docker 运行 Tensorflow 论中国 什么是左移 如何清空 Git 仓库全部历史记录 一禅小和尚 有风吹过厨房 时间的玫瑰 如何在 CentOS 安装 GPU 驱动 开发 Tips(19)
开发 Tips(12)
微信公众号 · 2019-08-23 · via 陈少文的网站

Please enable Javascript to view the contents

主要记录最近遇到的一些开发问题,解决方法。

1. Kubernetes 中给 Node 增加 Role: worker

1
2
3
4
kubectl get nodes
NAME         STATUS   ROLES    AGE    VERSION
i-6fns0nua   Ready    master   6d3h   v1.15.2
i-m69skuyd   Ready    <none>   6d2h   v1.15.2
1
2
kubectl label node i-m69skuyd  node-role.kubernetes.io/worker=
node/i-m69skuyd labeled
1
2
3
4
kubectl get node
NAME         STATUS   ROLES    AGE    VERSION
i-6fns0nua   Ready    master   6d3h   v1.15.2
i-m69skuyd   Ready    worker   6d2h   v1.15.2

2. 删除 Kubernetes 的一个节点

查看当前节点:

1
2
3
4
kubectl get node
NAME         STATUS   ROLES    AGE    VERSION
i-6fns0nua   Ready    master   6d3h   v1.15.2
i-m69skuyd   Ready    worker   6d2h   v1.15.2

迁移 Pod ,禁止调度待删除节点:

1
kubectl drain i-m69skuyd --delete-local-data --force --ignore-daemonsets

删除节点:

1
kubectl delete node i-m69skuyd

3. Kubernetes 上用 Helm 安装 Prometheus

首先需要创建 PV,可以参考第一章节。

然后,执行命令:

1
2
3
4
5
helm install --namespace monitor --name prometheus stable/prometheus \
  --set alertmanager.persistentVolume.storageClass="local" \
  --set server.persistentVolume.storageClass="local"
helm install  --namespace monitor --name grafana stable/grafana \
  --set persistence.storageClassName="local"

其他操作可以参考,在 Minikube 集群上安装 Prometheus

4. 如何重启 Kubernetes 中的 Pod 或服务

  1. 重启 Pod

如果 Pod 关联了副本控制器,直接删除 Pod,Kubernetes 会重新创建 Pod 。

  • 查看 Pod
1
kubectl get pod -n {NAMESPACE}
  • 删除 Pod
1
kubectl delete pod {POD_NAME} -n {NAMESPACE}

另外一种是,使用 replace

1
kubectl replace --force -f pod.yaml

如果没有 pod.yaml 文件,可以直接使用下面的命令:

1
kubectl get pod {POD_NAME} -n {NAMESPACE} -o yaml | kubectl replace --force -f -
  1. 重启 Deployment

将服务的副本数设置为 0,然后恢复原始的副本数。

  • 查看服务
1
kubectl get deployment -n {NAMESPACE}
  • 设置副本数为 0
1
kubectl scale deployment {DEPLOYMENT_NAME} --replicas=0 -n {NAMESPACE}
  • 恢复副本数量
1
kubectl scale deployment {DEPLOYMENT_NAME} --replicas={REPLICAS_NUM} -n {NAMESPACE}

5. 通过 NodePort 的方式,暴露正在运行的服务

在服务没有启动之前,通过修改 yaml 配置,可以暴露服务。当服务已经运行起来之后,可以通过 patch 的方式暴露服务。

  • 查看服务
1
kubectl get service -n {NAMESPACE}
  • 暴露端口访问
1
kubectl patch service {SERVICE_NAME} -p '{"spec":{"type":"NodePort"}}' -n {NAMESPACE}

微信公众号