【云计算】kubernets集群二进制安装解析
小标 2018-12-13 来源 : 阅读 1120 评论 0

摘要:本文主要向大家介绍了【云计算】kubernets集群二进制安装解析,通过具体的内容向大家展现,希望对大家学习云计算有所帮助。

本文主要向大家介绍了【云计算】kubernets集群二进制安装解析,通过具体的内容向大家展现,希望对大家学习云计算有所帮助。


之前尝试了使用kubeadm工具来安装k8s集群,非常简单,傻瓜也会。那么,其中肯定有诈。所以就花了些时间使用二进制文件方式来安装k8s集群。说白了 ,二进制文件就是可直接执行的底层代码,这样的安装方式无非就是自己手动把kubeadm工具所做的事情做了。废话够多了,开始下一步吧。


组织架构


master:192.168.10.21 控制节点 安装etcd,kube-apiserver,kube-controller-manager,kube-scheduler


node1: 192.168.10.22 计算节点1 安装kube-proxy,kubelet


node2: 192.168.10.23 计算节点2 安装kube-proxy,kubelet


无论是master或者node,都需要提前安装好docker


master 节点的安装


一.安装etcd


1.下载etcd二进制包


wget https://github.com/etcd-io/etcd/releases/download/v3.3.9/etcd-v3.3.9-linux-amd64.tar.gz


2.解压etcd


tar -zxvf etcd-v3.3.9-linux-amd64.tar.gz & cd etcd-v3.3.9-linux-amd64


3.将二进制包etcd,etcdctl复制到/usr/bin目录


cp etcd etcdctl /usr/bin


4.设置systemd服务文件/usr/lib/systemd/system/etcd.service


[Unit]

Description=Etcd Server

After=network.target


[Service]

Type=simple

WorkingDirectory=/var/lib/etcd/ #etcd数据保存的目录

EnvironmentFile=-/etc/etcd/etcd.conf

ExecStart=/usr/bin/etcd


[Install]

WantedBy=multi-user.target


5.增加一下etcd的存放目录,默认不存在


mkdir /var/lib/etcd


6.配置完成后,通过systemctl start 命令启动etcd服务


systemctl daemon-reload


systemctl enable etcd.service


systemctl start etcd.service


通过执行 etcdctl cluster-health 验证etcd 是否正确启动


etcdctl cluster-health


二.安装kube-apiserver服务


1.首先到kubernetes官网找到相应的二进制包


cd /usr/local/src/


wget https://dl.k8s.io/v1.11.0/kubernetes-server-linux-amd64.tar.gz


2.解压kubernetes-server-linux-amd64.tar.gz


tar -zxvf kubernetes-server-linux-amd64.tar.gz


cd kubernetes/server/bin & ls



3.将kube-apiserver,kube-controller-manager,kube-scheduler复制到/usr/bin


cp kube-apiserver kube-controller-manager kube-scheduler /usr/bin


4.设置systemd服务文件/usr/lib/systemd/system/kube-apiserver.service


[root@master system]# vim kube-apiserver.service


[Unit]

Description=Kubernetes API Server

Documentation=https://github.com/kubernetes/kubernetes

After=etcd.service

Wants=etcd.service


[Service]

EnvironmentFile=/etc/kubernetes/apiserver

ExecStart=/usr/bin/kube-apiserver $KUBE_API_ARGS

Restart=on-failure

Type=notify


[Install]

WantedBy=multi-user.target


5.编辑/etc/kubernetes/apiserver


KUBE_API_ARGS="--storage-backend=etcd3 --etcd-servers=https://127.0.0.1:2379 --insecure-bind-address=0.0.0.0 --insecure-port=8080 --service-cluster-ip-range=10.10.10.0/24 --service-node-port-range=1-65535 --admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,DefaultStorageClass,ResourceQuota --logtostderr=true --log-dir=/var/log/kubernetes --v=2"


三.安装kube-controller-manager


1.设置systemd服务文件/usr/lib/systemd/system/kube-controller-manager.service服务


[Unit]

Description=Kubernetes Controller Manager

Documentation=https://github.com/GoogleCloudPlatform/kubernetes

After=kube-apiserver.service

Requires=kube-apiserver.service


[Service]

EnvironmentFile=-/etc/kubernetes/controller-manager

ExecStart=/usr/bin/kube-controller-manager $KUBE_CONTROLLER_MANAGER_ARGS

Restart=on-failure

LimitNOFILE=65536


[Install]

WantedBy=multi-user.target


2.编辑配置文件/etc/kubernetes/controller-manager


KUBE_CONTROLLER_MANAGER_ARGS="--master=https://192.168.10.21:8080 --logtostderr=true --log-dir=/var/log/kubernetes --v=2"


四.安装kube-scheduler


1.设置systemd服务文件/usr/lib/systemd/system/kube-scheduler.service服务


[Unit]

Description=Kubernetes Scheduler

Documentation=https://github.com/GoogleCloudPlatform/kubernetes

After=kube-apiserver.service

Requires=kube-apiserver.service


[Service]

EnvironmentFile=-/etc/kubernetes/scheduler

ExecStart=/usr/bin/kube-scheduler $KUBE_SCHEDULER_ARGS

Restart=on-failure

LimitNOFILE=65536


[Install]

WantedBy=multi-user.target


2.编辑配置文件/etc/kubernetes/scheduler


KUBE_SCHEDULER_ARGS="--master=https://192.168.10.21:8080 --logtostderr=true --log-dir=/var/log/kubernetes --v=2"


五.启动master各个服务


systemctl daemon-reload


systemctl enable kube-apiserver.service


systemctl start kube-apiserver.service


systemctl enable kube-controller-manager.service


systemctl start kube-controller-manager.service


systemctl enable kube-scheduler


systemctl start kube-scheduler


node节点安装


1.下载kubernetes二进制包,将里面的kubectl,kube-proxy复制到/usr/bin


cp /usr/local/src/kubernetes/server/bin/kubelet /usr/bin


cp /usr/local/src/kubernetes/server/bin/kube-proxy /usr/bin


2.配置/usr/lib/systemd/system/kubelet.service


[Unit]

Description=Kubernetes Kubelet Server

Documentation=https://github.com/GoogleCloudPlatform/kubernetes

After=docker.service

Requires=docker.service


[Service]

WorkingDirectory=/var/lib/kubelet

EnvironmentFile=-/etc/kubernetes/kubelet

ExecStart=/usr/bin/kubelet $KUBELET_ARGS

Restart=on-failure

KillMode=process


[Install]

WantedBy=multi-user.target


3.添加参数文件/etc/kubernetes/kubelet


KUBELET_ARGS="--address=192.168.10.22 --port=10250 --cgroup-driver=systemd --hostname-override=192.168.10.22 --allow-privileged=false --kubeconfig=/etc/kubernetes/kubelet.kubeconfig --cluster-dns=10.10.10.2 --cluster-domain=cluster.local --fail-swap-on=false --logtostderr=true --log-dir=/var/log/kubernetes --v=4"


4.设置kubeconfig


cat /etc/kubernetes/kubelet.kubeconfig


apiVersion: v1

kind: Config

clusters:

- cluster:

server: https://192.168.10.21:8080

name: local

contexts:

- context:

cluster: local

name: local

current-context: local


5.kube-proxy服务/usr/lib/systemd/system/kube-proxy.service


[Unit]

Description=Kubernetes Kube-proxy Server

Documentation=https://github.com/GoogleCloudPlatform/kubernetes

After=network.service

Requires=network.service


[Service]

EnvironmentFile=/etc/kubernetes/proxy

ExecStart=/usr/bin/kube-proxy $KUBE_PROXY_ARGS

Restart=on-failure

LimitNOFILE=65536

KillMode=process


[Install]

WantedBy=multi-user.target


6.配置文件/etc/kubernetes/proxy


KUBE_PROXY_ARGS="--master=https://192.168.10.21:8080 --hostname-override=192.168.10.22 --logtostderr=true --log-dir=/var/log/kubernetes --v=4"


7.通过systemctl start 启动kubelet和kube-proxy服务


systemctl daemon-reload


systemctl enable kubelet.service


systemctl start kubelet.service


systemctl enable kube-proxy


systemctl start kube-proxy


8. 在master上测试node是否成功安装


kubectl get nodes


本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标大数据云计算大数据安全频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程