【AICon】 如何构建高效的 RAG 系统?RAG 技术在实际应用中遇到的挑战及应对策略?>>> 了解详情
写点什么

手把手教你搭建 Kubernetes 1.4 集群

  • 2020-03-11
  • 本文字数:4193 字

    阅读完需:约 14 分钟

手把手教你搭建 Kubernetes 1.4 集群

Kubernetes 1.4 的新功能是引入了 kubeadm 部署机制(暂时还是 alpha 版本),大大简化了 Kubernetes 集群的构建。本文来自官方的文档,现在部署一个 K8S 集群只要四个步骤:

步骤

1、安装 docker、kubelet、kubectl、kubeadm


  • docker 容器运行环境

  • kubelet 集群最核心组件,它运行在所有集群中的机器,并实际操作 POD 和容器

  • kubectl 交互命令行控制集群

  • kubeadm Kubernetes1.4 新增,替换之前的 kube-up.sh 脚本,用于集群的创建和节点的增加

  • 2、kubeadm init 初始化 master

  • 3、kubeadm join --token

  • 4、部署 POD 网络


从 1.3 开始支持新的资源类型 DaemonSet,kube-scheduler,kube-apiserver,kube-controller-manager,kube-proxy,kube-discovery 都已经放入 POD 中,使用更加方便了。


kubectl get DaemonSet --namespace=kube-system


kubectl get secrets --namespace=kube-system

准备

准备三台阿里云(区域选择美西)ECS 主机


  • 硬件配置: 三台 1 核 2G 按使用流量网络 5M

  • 操作系统:Centos7.2


#关闭SEsetenforce 0#关闭firewalldsystemctl stop firewalld.servicesystemctl disable firewalld.service#配置kubernetes yum源cat <<EOF > /etc/yum.repos.d/kubernetes.repo[kubernetes]name=Kubernetesbaseurl=http://yum.kubernetes.io/repos/kubernetes-el7-x86_64enabled=1gpgcheck=1repo_gpgcheck=1gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg       https://packages.cloud.google.com/yum/doc/rpm-package-key.gpgEOF#安装docker kubelet...yum install -y docker kubelet kubeadm kubectl kubernetes-cnisystemctl enable docker && systemctl start dockersystemctl enable kubelet && systemctl start kubelet
复制代码

Setup1. 初始化 Master 节点

如果您有多个 IP 地址,可以加参数–api-advertise-addresses=指定 IP


kubeadm init
复制代码


部署日志


[root@master ~]# kubeadm init<master/tokens> generated token: "f93eee.de3d7fa600af2083"<master/pki> created keys and certificates in "/etc/kubernetes/pki"<util/kubeconfig> created "/etc/kubernetes/kubelet.conf"<util/kubeconfig> created "/etc/kubernetes/admin.conf"<master/apiclient> created API client configuration<master/apiclient> created API client, waiting for the control plane to become ready<master/apiclient> all control plane components are healthy after 18.569646 seconds<master/apiclient> waiting for at least one node to register and become ready<master/apiclient> first node is ready after 0.503710 seconds<master/discovery> created essential addon: kube-discovery, waiting for it to become ready<master/discovery> kube-discovery is ready after 3.003818 seconds<master/addons> created essential addon: kube-proxy<master/addons> created essential addon: kube-dns
Kubernetes master initialised successfully!
You can now join any number of machines by running the following on each node:
kubeadm join --token f93eee.de3d7fa600af2083 47.88.101.27
复制代码


生成的配置文件列表


# 证书/etc/kubernetes/pki/apiserver-key.pem/etc/kubernetes/pki/apiserver.pem/etc/kubernetes/pki/apiserver-pub.pem/etc/kubernetes/pki/ca-key.pem/etc/kubernetes/pki/ca.pem/etc/kubernetes/pki/ca-pub.pem/etc/kubernetes/pki/sa-key.pem/etc/kubernetes/pki/sa-pub.pem/etc/kubernetes/pki/tokens.csv# Master配置/etc/kubernetes/manifests/kube-scheduler.json/etc/kubernetes/manifests/kube-controller-manager.json/etc/kubernetes/manifests/kube-apiserver.json/etc/kubernetes/manifests/etcd.json# kubelet配置/etc/kubernetes/admin.conf/etc/kubernetes/kubelet.conf
复制代码

Setup2. 添加 work 节点

[root@node1 ~]# kubeadm join --token f93eee.de3d7fa600af2083 47.88.101.27<util/tokens> validating provided token<node/discovery> created cluster info discovery client, requesting info from "http://47.88.101.27:9898/cluster-info/v1/?token-id=f93eee"<node/discovery> cluster info object received, verifying signature using given token<node/discovery> cluster info signature and contents are valid, will use API endpoints [https://47.88.101.27:443]<node/csr> created API client to obtain unique certificate for this node, generating keys and certificate signing request<node/csr> received signed certificate from the API server, generating kubelet configuration<util/kubeconfig> created "/etc/kubernetes/kubelet.conf"
复制代码


Node join complete:


  • Certificate signing request sent to master and response

  • received.

  • Kubelet informed of new secure connection details.


Run ‘kubectl get nodes’ on the master to see this machine join.

Setup3. 部署 Pod 网络

Kubernetes 1.2 版本默认使用的是 flannel 网络,用于解决 POD 跨主机之间的通信。新版本未提供默认的网络插件,在部署应用集群之前,必须要配置 POD 网络。


未配置 POD 网络,默认的 KUBE-DNS 是无法启动的,通过下面的方法查看。


#查找系统Pod kubectl get po --namespace=kube-system#kube-dns-2247936740-zstum        0/3       ContainerCreating   0          4m#查看POD日志kubectl describe po kube-dns-2247936740-zstum --namespace=kube-system Events:  FirstSeen LastSeen    Count   From            SubobjectPath   Type        Reason      Message  --------- --------    -----   ----            -------------   --------    ------      -------  5m        5m      1   {default-scheduler }            Normal      Scheduled   Successfully assigned kube-dns-2247936740-zstum to master  5m        25s     10  {kubelet master}            Warning     FailedSync  Error syncing pod, skipping: failed to "SetupNetwork" for "kube-dns-2247936740-zstum_kube-system" with SetupNetworkError: "Failed to setup network for pod \"kube-dns-2247936740-zstum_kube-system(4064154b-8ee6-11e6-b6cc-00163e003ad6)\" using network plugins \"cni\": cni config unintialized; Skipping pod"
复制代码


这里使用 weave 网络方案,当然也可以使用 Calico 或 Canal。


[root@master ~]# kubectl apply -f https://git.io/weave-kubedaemonset "weave-net" created
复制代码


网络安装完成,通过下面的命令可以看到 kube-dns 已经启动了.


[root@master ~]# kubectl get po --namespace=kube-systemNAME                             READY     STATUS    RESTARTS   AGEetcd-master                      1/1       Running   0          5mkube-apiserver-master            1/1       Running   0          5mkube-controller-manager-master   1/1       Running   0          5mkube-discovery-982812725-p54gy   1/1       Running   0          3mkube-dns-2247936740-jk18b        2/3       Running   0          3mkube-proxy-amd64-05cer           1/1       Running   0          3mkube-scheduler-master            1/1       Running   0          5mweave-net-o1mex                  2/2       Running   0          1m
复制代码


#查看启动配置ps aux|grep kubelet
复制代码


#输出日志/usr/bin/kubelet --kubeconfig=/etc/kubernetes/kubelet.conf --require-kubeconfig=true --pod-manifest-path=/etc/kubernetes/manifests --allow-privileged=true --network-plugin=cni --cni-conf-dir=/etc/cni/net.d --cni-bin-dir=/opt/cni/bin --cluster-dns=100.64.0.10 --cluster-domain=cluster.local --v=4
复制代码

案例演示

root@master ~]# git clone https://github.com/microservices-demo/microservices-demo正克隆到 'microservices-demo'...remote: Counting objects: 5010, done.remote: Compressing objects: 100% (13/13), done.remote: Total 5010 (delta 1), reused 0 (delta 0), pack-reused 4997接收对象中: 100% (5010/5010), 49.26 MiB | 16.21 MiB/s, done.处理 delta 中: 100% (2718/2718), done.[root@master ~]# kubectl apply -f microservices-demo/deploy/kubernetes/manifestsdeployment "cart-db" createdservice "cart-db" createddeployment "cart" createdservice "cart" createddeployment "catalogue-db" createdservice "catalogue-db" createddeployment "catalogue" createdservice "catalogue" createddeployment "front-end" createdservice "front-end" creatednamespace "kube-system" configurednetworkpolicy "cart-access" creatednetworkpolicy "cart-db-access" creatednetworkpolicy "catalogue-access" creatednetworkpolicy "catalogue-db-access" creatednamespace "sock-shop" configurednetworkpolicy "front-end-access" configurednetworkpolicy "orders-access" configurednetworkpolicy "orders-db-access" configurednetworkpolicy "payment-access" configurednetworkpolicy "prism-access" configurednetworkpolicy "rabbitmq-access" configurednetworkpolicy "shipping-access" configurednetworkpolicy "user-access" configurednetworkpolicy "user-db-access" configureddeployment "orders-db" configuredservice "orders-db" configureddeployment "orders" configuredservice "orders" configureddeployment "payment" configuredservice "payment" configureddeployment "queue-master" configuredservice "queue-master" configureddeployment "rabbitmq" configuredservice "rabbitmq" configureddeployment "shipping" configuredservice "shipping" configurednamespace "sock-shop" configureddeployment "user-db" configuredservice "user-db" configureddeployment "user" configuredservice "user" configured
复制代码


至此,我们的 K8S 集群创建完毕。


本文转载自才云 Caicloud 公众号。


原文链接:https://mp.weixin.qq.com/s/woCVVzeVlk5lGrWIzM26Nw


2020-03-11 19:52739

评论

发布
暂无评论
发现更多内容

Java体系最强干货分享—挑战40天准备Java面试,最快拿到offer!

Java你猿哥

Java 后端 ssm 面经 春招

见技术大佬,领惊喜好礼!快来领取数据库峰会邀请函!

InfoQ写作社区官方

数据库 云原生 阿里 热门活动 阿里云瑶池数据库峰会

美团二面特点:喜欢写一个 SQL 语句,然后问你加了哪些锁!

Java你猿哥

Java 数据库 sql ssm InnoDB存储引擎

Portraiture最新版插件新增哪些功能?

茶色酒

Portraiture4

币安欧意交易所合约跟单平台软件开发详情(api对接)

开发微hkkf5566

Go Slice 扩容的这些坑你踩过吗?

王中阳Go

Go golang 高效工作 学习方法 面试题

如何利用ChatGPT搞科研?

Openlab_cosmoplat

人工智能 开源社区 ChatGPT

阿里巴巴灵魂一问:说说触发HashMap死循环根因

Java你猿哥

Java jdk 后端 ssm

轻松搞定面试拿offer的Java面试宝典(全彩图文版)24个Java技术栈

Java你猿哥

Java 面试 ssm 面经 java技术栈

分析 | NFTScan NFT API 在加密钱包开发中的应用

NFT Research

API NFT

GO语言集成开发: GoLand 2022 中文激活版

真大的脸盆

Mac 代码开发 Mac 软件 代码编辑 代码编辑工具

硬核!腾讯大佬最新手打的Spring Boot笔记,从原理到实战再到源码

Java你猿哥

Java Spring Boot 后端 面经

中小企业运维安全审计用什么软件好?有推荐吗?

行云管家

信息安全 堡垒机 运维审计

想稳中求进?字节大佬的硬核学习神器《图解Java并发编程》看了吗

Java你猿哥

Java 面试 Java并发 ssm 面经

MQTT 5.0特性Inflight Window&Message Queue

EMQ映云科技

物联网 IoT mqtt emqx 企业号 3 月 PK 榜

StyleGAN 生成 AI 虚拟人脸,再也不怕侵犯肖像权

极客飞兔

人工智能 AI 图像处理 StyleGAN 人脸生成

京东三面:说说synchronized和volatile的区别

Java你猿哥

Java 面试 ssm 面经 Java多线程

代码实战带你了解深度学习中的混合精度训练

华为云开发者联盟

人工智能 深度学习 华为云 华为云开发者联盟 企业号 3 月 PK 榜

【IT小知识】扩容是什么意思?扩容的近义词有哪些?

行云管家

扩容 IT运维

爱了!阿里P8纯手码出489页SQL优化手册,附笔记源码

做梦都在改BUG

Java 数据库 sql 面试

3月27日“文心一言云服务”系列产品将发布 已有21家企业签约

Geek_2d6073

给跪了!阿里P7技术专家进阶必备,架构进阶宝典

做梦都在改BUG

Java 进阶 架构师

GPT-4:不open的OpenAI,终于不再编造事实

鼎道智联

openai ChatGPT4

2023金三银四最新Java面试题大全(整理版)1000+面试题附答案详解

架构师之道

程序员 java面试

Apache Doris 1.2.3 Release 版本正式发布

SelectDB

数据仓库 数据湖 Doris 数据湖Catalog catalog

如何基于 Apache Doris 与 Apache Flink 快速构建极速易用的实时数仓

SelectDB

flink 数据湖 实时数仓 Doris 数据库、

建木v2.7.0发布

Jianmu

node.js maven 缓存 CI/CD 流水线

CorelDRAW Graphics Suite2023功能介绍

茶色酒

cdr2023

EMQ&南洋万邦云边一体化方案:激活数据潜力,打造智慧工业园区

EMQ映云科技

物联网 IoT 工业互联网 智能制造 企业号 3 月 PK 榜

TechBits | TCP 使用 WireShark 进行抓包

Java你猿哥

Java 后端 ssm

GPT-4:我不是来抢你饭碗的,我是来抢你锅的

这我可不懂

低代码 ChatGPT JNPF GPT-4

手把手教你搭建 Kubernetes 1.4 集群_行业深度_才云科技_InfoQ精选文章