kubernetes 1.8.7 离线部署手册(二)

本文档详细介绍了如何在离线环境中部署Kubernetes 1.8.7集群的扩展插件,包括网络插件Calico、服务发现插件CoreDNS、可视化插件Dashboard和监控插件Heapster。文中提供了每个插件的部署步骤、注意事项及镜像准备,确保在不具备互联网连接的情况下也能成功搭建完整的Kubernetes生态系统。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这是kubernetes集群部署的第二部分, 在上篇中我们部署了一个的kubernetes集群(4个node节点), 接下来我们将部署一些很实用的kubernetes扩展插件, 包括集群网络, 可视化, 服务发现, 集群监控。

插件镜像准备

kubernetes提供诸多使用的集群插件: 插件列表, 下面我们选取如下4个进行安装:

  • Calico: 安全的L3网络和网络策略插件,通过CNI为整体集群的网络打通。
  • CoreDNS: 为集群提供DNS服务, 用于服务发现(CoreDNS, 就是为了替换kube-dns的)
  • Dashboard: 为用户提供Web UI。
  • Heapster: 集群的监控插件, 同时也为 HPA提供指标。

以下是按照以上插件需要的镜像:

# calico依赖镜像
quay.io/calico/node:v2.6.7
quay.io/calico/cni:v1.11.2
quay.io/calico/kube-controllers:v1.0.3
# coredns依赖镜像
coredns/coredns:1.0.4
# dashboard依赖镜像
k8s.gcr.io/kubernetes-dashboard-amd64:v1.8.2
# heapster依赖镜像
k8s.gcr.io/heapster-amd64:v1.5.0
k8s.gcr.io/heapster-grafana-amd64:v4.4.3
k8s.gcr.io/heapster-influxdb-amd64:v1.3.3

这些镜像最后会把push到我们自己的私有仓库, 如果你还没安装私有仓库请移步: 企业级Docker镜像仓库harbor的部署和使用

如果自己能翻墙,自己下载推送到自己的私有仓库, 如果出不去, 请看这里: 百度网盘kubernetes-adds插件image

加载下载的镜像到本地

docker load < calico-node.tar
docker load < calico-cni.tar
docker load < calico-kube-controller.tar
docker load < coredns.tar
docker load < dashboard.tar
docker load < heapster.tar
docker load < heapster-grafana.tar
docker load < heapster-influxdb.tar

推送到私有仓库
我私有仓库使用的是harbor, 并且已经创建了1个kubernetes的项目, 下面的操作请更换成你自己的仓库地址和项目

# coredns
docker tag coredns/coredns:1.0.4 192.168.204.15/kubernetes/coredns:1.0.4
docker push 192.168.204.15/kubernetes/coredns:1.0.4
# calico
...

网络插件-Calico

Calico是一款纯Layer 3的数据中心网络方案(不需要Overlay网络), Calico好处是他已与各种云原生平台有良好的整合, 而Calico在每一个节点利用Linux Kernel实现高效的vRouter来负责数据的转发,而当数据中心复杂度增加时,可以用BGP route reflector来达成, 是性能最好的网络解决方案之一。
Calico还有一大优势:network policy。用户可以动态定义ACL规则,控制进出容器的数据包,实现业务需求, 比如租户隔离。
最新版本的calico已经到3.0.1, 3.0有不兼容变更, 进过几天的折腾, 问题很多, github上Issue关于3.0和k8s的问题还未得到解决, 所以我们安装2.x版本的calico。

部署注意事项

在使用Calico前当然最好撸一下官方文档,地址在这里Calico 官方文档,其中部署前需要注意以下几点:

  • 官方文档中要求kubelet配置必须增加 –network-plugin=cni 选项
  • calico采用daemonSet部署时, kubelet配置必须增加 –allow_privileged=true 选项
  • kube-proxy组件必须采用iptables proxy mode 模式(1.2 以后是默认模式)
  • kubec-proxy组件不能采用 –masquerade-all 启动,因为会与 Calico policy 冲突
  • NetworkPolicy API 只要需要 Kubernetes 1.3 以上
  • 启用RBAC后需要设置对应的 RoleBinding,参考官方文档 RBAC 部分

master安装calicoctl

首先需要在master节点安装calico的客户端: calicoctl 用于稍后检查calico的网络节点状态, 到calico的Github Release下载2.6版本calico对于的CLI: calicoctl 1.6.3

wget https://github.com/projectcalico/calicoctl/releases/download/v1.6.3/calicoctl
chmod +x calicoctl
mv calicoctl /usr/local/bin/
mkdir /etc/calico

然后配置客户端: /etc/calico/calicoctl.cfg:

apiVersion: v1
kind: calicoApiConfig
metadata:
spec:
  datastoreType: "etcdv2"
  etcdEndpoints: "https://192.168.204.3:2379"
  etcdKeyFile: "/etc/kubernetes/pki/kubernetes-key.pem"
  etcdCertFile: "/etc/kubernetes/pki/kubernetes.pem"
  etcdCACertFile: "/etc/kubernetes/pki/ca.pem"

然后等集群启动后测试。

DaemonSet安装calico插件

这里采用calico standard hosted install, 使用2.6的安装说明

下载最新2.6.x版本
mkdir calico && cd calico
wget https://docs.projectcalico.org/v2.6/getting-started/kubernetes/installation/hosted/calico.yaml
wget https://docs.projectcalico.org/v2.6/getting-started/kubernetes/installation/rbac.yaml
修改相关文件

rbac文件没有需要调整的, 而calico需要配置ETCD的相关参数, 因此修改calico.yaml如下2个部分:
(a). 指定etcd的地址(ConfigMap中):

etcd_endpoints: "https://192.168.204.3:2379"

(b). 指定etcd的证书(ConfigMap中)

  # If you're using TLS enabled etcd uncomment the following.
  # You must also populate the Secret below with these files.
  etcd_ca: "/calico-secrets/etcd-ca"
  etcd_cert: "/calico-secrets/etcd-cert"
  etcd_key: "/calico-secrets/etcd-key"

(c). 添加base64编码的证书内容(Secret中):

  # Populate the following files with etcd TLS configuration if desired, but leave blank if
  # not using TLS for etcd.
  # This self-hosted install expects three files with the following names.  The values
  # should be base64 encoded strings of the entire contents of each file.
  etcd-key: $(cat /etc/kubernetes/pki/kubernetes-key.pem | base64 | tr -d '\n')
  etcd-cert: $(cat /etc/kubernetes/pki/kubernetes.pem | base64 | tr -d '\n')
  etcd-ca: $(cat /etc/kubernetes/pki/ca.pem | base64 | tr -d '\n')

(d) 修改3个image为自己私有仓库的地址:

quay.io/calico/node:v2.6.7  --> 192.168.204.15/kubernetes/calico/node:v2.6.7
quay.io/calico/cni:v1.11.2  --> 192.168.204.15/kubernetes/calico/cni:v1.11.2
quay.io/calico/kube-controllers:v1.0.3 --> 192.168.204.15/kubernetes/calico/kube-controllers:v1.0.3
确认kubelet配置

确认kubelet是否开启daemonSet允许权限
查看所有node节点的kubelet配置文件是否添加了该选项: --allow_privileged=true
如果没添加, 添加然后重启kubelet

执行安装
kubectl apply -f  rbac.yaml
kubectl create -f calico.yaml
[root@k8s-apiserver01 calico]# kubectl get pods -n kube-system
NAME                                       READY     STATUS    RESTARTS   AGE
calico-kube-controllers-76ddc77958-pc7t2   1/1       Running   1          1d
calico-node-4jr45                          2/2       Running   2          1d
calico-node-5cvkj                          2/2       Running   0          1h
calico-node-sllgc                          2/2       Running   0          1d
calico-node-xwf7g                          2/2       Running   2          1d
Kubernetes指南-倪朋飞.pptx 1-唐继元Kubernetes Master High Availability 高级实践.pdf 2、刘淼-基于 DevOps、微服务及k8s的高可用架构探索与实现.pdf ArchSummit北京2016-《网易蜂巢基于万节点Kubernets支撑大规模云应用实践》-刘超.pdf Azure Service Broker_cn - Rita Zhang.pdf google/ HPE李志霄 Kubernetes企业级容器云:加速数字创新-20170407.pdf IBM马达:Kubernetes 中基于策略的资源分配.pdf k8s资料.rar Kubernetes Cookbook-Packt Publishing(2016).pdf Kubernetes Microservices with Docker-Apress2016.pdf Kubernetes on Azure - Gabe Monroy.pdf Kubernetes1.6集群部署完全指南——进制文件部署开启TLS基于CentOS7.pdf Kubernetes1-4版本新增加功能介绍.pdf Kubernetes监控与日志.pdf kubernetes容器云平台实践-李志伟v1.0.pdf Kubernetes生态系统现状报告.pdf Kubernetes下API网关的微服务实践 长虹集团-李玮演讲PPT.pdf Kubernetes与EcOS的碰撞结合 成都精灵云-张行才演讲PPT.pdf Kubernetes与OpenStack融合支撑企业级微服务架构.pdf Kubernetes在华为全球IT系统中的实践.pdf Kubernetes在企业中的场景运用及管理实践.pdf Kubernetes指南-倪朋飞.pdf Kubernetes指南-倪朋飞.pptx l.txt Lessons+learned+and+challenges+faced+while+running+Kubernetes+at+scale.pdf rkt与Kubernetes的深度融合.pdf rkt与Kubernetes的深度融合.pptx SACC2017FabricOnKubernetesChinese.pdf ThoughtWorks林帆-白话Kubernetes网络.pdf 百度云PaddlePaddle on kubernetes-周倜.pdf 从Borg到Kubernetes-PaaS产品设计-华为-钟成.pdf 改造Kuberntetes打造SAE容器云.pdf 跟谁学-基于容器的持续集成平台建设.pdf 谷歌深度学习在Kubernetes上的实践.pptx 惠普基于Kubernetes的容器私有云平台实践.pdf 基于Kubernetes的模板化应用编排.pdf 基于kubernetes的容器云平台设计与实践-邓德源.pdf 基于Kubernetes的私有容器云建设实践-易宝支付.pdf 基于Kubernetes构建AI业务生态.pdf 李波:小米生态云应用引擎实践.pdf 魅族容器云平台基于 k8s 的自动化运维实践-曾彬.pdf 欧昌华-基于 Nginx 的负载均衡器在 K8S 中的实践.pdf 彭超:瓜子云的落地.pdf 如何落地TensorFlow on Kubernetes.pdf 如何用OpenStack和Kubernetes快速搭建一个容器和虚拟机组合服务的云平台.pptx 孙杰:大型企业云平台架构演进的实践之路.pdf 微服务道与术-敖小剑.pdf 微软Azure云助力微服务-赵文婧.pdf 颜卫-腾讯云容器服务基于kubernetes的应用编排实践-final-v1.0.pptx 有容云邓绍军-Kubernetes落地实践.pptx 折800如何用Docker&Kubernetes;构建自动化测环境.pdf
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值