资讯专栏INFORMATION COLUMN

在 Linux 上部署 Kubernetes

SegmentFault / 1671人阅读

摘要:安装节点网络插件你必须在安装一个网络插件,以确保之间能够相互通信。添加节点节点作为工作负载运行容器和等。如果你要将一个新的机器作为节点加入集群中,须将每个机器切换为用户,并执行之前的输出命令,例如在上运行命名即可插件节点集群信息。

先决条件

操作系统: Ubuntu 16.04, CentOS 7 or HypriotOS v1.0.1+

至少 1GB RAM

确保集群内所有计算机之间的网络连接(公共或专用网络都行)

目标

在你的机器上安装一个安全的 Kubernetes 集群

在集群上安装一个 pod 网络,一遍应用组件(pods)之间可以正常通信。

安装 在主机上安装 kubelet 和 kubeadm

以下为将要在你的主机上安装的包:

docker

kubelet

kubectl

kubeadm

依次为每个主机进行安装配置:

1. 切换为 root 用户 su root

2. 如果你的机器是运行的 ubuntu 16.04 或 HypriotOS v1.0.1,执行如下命令:

# curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
# cat < /etc/apt/sources.list.d/kubernetes.list
deb http://apt.kubernetes.io/ kubernetes-xenial main
EOF
# apt-get update
# # Install docker if you don"t have it already.
# apt-get install -y docker.io
# apt-get install -y kubelet kubeadm kubectl kubernetes-cni

3. CentOS 7,执行如下命令:

# cat < /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=http://yum.kubernetes.io/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg
       https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOF
# setenforce 0
# yum install -y docker kubelet kubeadm kubectl kubernetes-cni
# systemctl enable docker && systemctl start docker
# systemctl enable kubelet && systemctl start kubelet
初始化 master
 # kubeadm init

输出结果大体这样:

 generated token: "f0c861.753c505740ecde4c"
 created keys and certificates in "/etc/kubernetes/pki"
 created "/etc/kubernetes/kubelet.conf"
 created "/etc/kubernetes/admin.conf"
 created API client configuration
 created API client, waiting for the control plane to become ready
 all control plane components are healthy after 61.346626 seconds
 waiting for at least one node to register and become ready
 first node is ready after 4.506807 seconds
 created essential addon: kube-discovery
 created essential addon: kube-proxy
 created essential addon: kube-dns

Kubernetes master initialised successfully!

You can connect any number of nodes by running:

kubeadm join --token  

记录下 kubeadm init 输出的 kubeadm join 命令行。

安装节点网络插件

你必须在安装一个 pod 网络插件,以确保 pods 之间能够相互通信。

kubernetes 支持的 pod 网络插件类型

Calico

Canal

Flannel

Romana

Weave

通过如下命令安装 pod 网络插件:

# kubectl apply -f 

以 Calico 网络插件为例,在 Calico 官网 上下载 calico.yaml 文件到本地,然后执行如下命令:

# kubectl apply -f calico.yaml

具体细节请参阅特定插件安装指南。一个集群中只能安装一个 pod 网络。

添加节点

节点作为工作负载运行容器和 pods 等。如果你要将一个新的机器作为节点加入集群中,须将每个机器切换为 root 用户,并执行之前 kubeadm init 的输出命令,例如:

# kubeadm join --token  
 validating provided token
 created cluster info discovery client, requesting info from "http://138.68.156.129:9898/cluster-info/v1/?token-id=0f8588"
 cluster info object received, verifying signature using given token
 cluster info signature and contents are valid, will use API endpoints [https://138.68.156.129:443]
 created API client to obtain unique certificate for this node, generating keys and certificate signing request
 received signed certificate from the API server, generating kubelet configuration
 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.

在 master 上运行 kubectl get nodes 命名即可插件节点集群信息。

可选配置 非 master 节点控制集群
# scp root@:/etc/kubernetes/admin.conf .
# kubectl --kubeconfig ./admin.conf get nodes
撤销 kubeadm

撤销 kubeadm,只需执行如下命令:

# kubeadm reset

如果你想重新启动集群,执行 systemctl start kubelet ,再执行 kubeadm initkubeadm join

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/32560.html

相关文章

  • 使用Kubernetes你需要知道的硬道理

    摘要:是谷歌内部为解决这个问题所做的工作的产物,它为管理容器如何在整个集群中运行提供了一个单一的框架。在云中使用服务在许多云中作为标准问题项提供,尽管它在谷歌云平台,中最突出地表现为本地特性。使用,运行控制平面,将重点部署将用于所需配置的容器。每一项创新都会带来新的复杂性。容器使以一种方便的、可移植的形式打包和运行应用程序成为可能,但至少要说以规模管理容器是一个挑战。Kubernetes是谷歌内部...

    fyber 评论0 收藏0
  • LinuxCon+ContainerCon+CloudOpen首次来华,国际开源盛会不容错过!

    摘要:月日,国家会议中心,由主办的合称将强势登陆北京这是首次来华,在这场三合一的开源技术盛会中,来自国内外的开发人员架构师系统管理员专家商业领袖等数千名专业人士将汇聚一堂。后被收购,梁胜出任云平台首席技术官,也成为首位华人。 6月19-20日,国家会议中心,由The Linux Foundation主办的LinuxCon + ContainerCon + CloudOpen (合称LC3) ...

    Corwien 评论0 收藏0
  • Kubernetes集群的详细部署

    摘要:部署为生成证书生成证书分发证书下载软件包复制到节点复制对应脚本到目录下。 一、集群机器 linux-node1:192.168.56.11 ---master 部署的服务: etcd kube-apiserver kube-controller-manager kube-scheduler docker linux-node2:192.168.56.12 ---no...

    qujian 评论0 收藏0
  • Kubernetes集群的详细部署

    摘要:部署为生成证书生成证书分发证书下载软件包复制到节点复制对应脚本到目录下。 一、集群机器 linux-node1:192.168.56.11 ---master 部署的服务: etcd kube-apiserver kube-controller-manager kube-scheduler docker linux-node2:192.168.56.12 ---no...

    Honwhy 评论0 收藏0
  • Windows 使用 helm3 和 kubectl

    摘要:是针对于来说的升级版,做了一个功能上的调整,以其发布的版本号命名,目前最新的版本为。个人认为必定会成为未来链中的关键一环。是什么熟悉的同学肯定非常熟悉甚至于每天都会使用到。是用于针对集群运行命令的命令行接口。 简介: 主要原因是,我不会 vim ,在 linux 上修改 charts 的很蹩脚,所以就想着能不能再 windows 上执行 helm 命令,将 charts install...

    enda 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<