良许Linux教程网 干货合集 详解k8skubernetes集群搭建步骤

详解k8skubernetes集群搭建步骤

k8s全称kubernetes,这个名字大家应该都不陌生,k8s是为容器服务而生的一个可移植容器的编排管理工具,越来越多的公司正在拥抱k8s,并且当前k8s已经主导了云业务流程,推动了微服务架构等热门技术的普及和落地,正在如火如荼的发展。

image-20211115133334019

k8s集群部署方案

如下是我的集群部署策略,1个master + 2个node(minion1.2之前的叫法)。我的存储集群etcd是单点集群,不推荐此做法。网络使用的是flannel虚拟二次网络。

快速安装与配置kubernetes集群搭快速安装与配置kubernetes集群搭
快速安装与配置kubernetes集群搭快速安装与配置kubernetes集群搭

Kubernetes具有完备的集群管理能力:

  包括多层次的安全防护和准入机制
  多租户应用支撑能力
  透明的服务注册和服务发现机制
  内建智能负载均衡器
  强大的故障发现和自我修复能力
  服务滚动升级和在线扩容能力
  可扩展的资源自动调度机制
  以及多粒度的资源管理能力

同时,kubernetes提供了完善的管理工具,这些工具涵盖了包括开发、部署测试、运维监控在内的各个环节。

在kubernetes中,service(服务)是分布式集群架构的核心,一个service对象拥有如下关键特征:

  拥有一个唯一指定的名字(比如mysql-service)。
  拥有一个虚拟IP(Cluster IP、service IP或VIP)和端口号。
  能够提供某种远程服务能力。
  被映射到了提供这种服务能力的一组容器应用上。

Kubernetes.io开发了一个交互式教程,通过WEB浏览器就能使用预先部署好的一个Kubernetes集群,快速体验kubernetes的功能和应用场景。

链接:https://kubernetes.io/docs/tutorials/kubernetes-basics/

K8s官方下载地址:https://github.com/kubernetes

快速安装与配置kubernetes集群搭快速安装与配置kubernetes集群搭
快速安装与配置kubernetes集群搭快速安装与配置kubernetes集群搭

环境准备工作

主机名     操作系统               IP地址
master  Centos 7.4-x86_64  192.168.2.102
node1  Centos 7.4-x86_64  192.168.2.108
node2  Centos 7.4-x86_64  192.168.2.228

关闭CentOS7自带的防火墙服务

systemctl disable firewalld
systemctl stop firewalld

修改主机名

[root@localhost ~]# hostnamectl  master //192.168.2.102
[root@localhost ~]# hostnamectl  node1 //192.168.2.108
[root@localhost ~]# hostnamectl  node2 //192.168.2.228

更改Hostname为 master、node1、node2,配置IP地址,配置3台测试机的/etc/hosts文件(在三台服务器上同步)

[root@master ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.2.102 master
192.168.2.108 node1
192.168.2.228 node2
[root@master ~]#

时间校对(三台机器都做时间校对)

[root@master ~]# ntpdate ntp1.aliyun.com
13 Sep 14:48:02 ntpdate[1596]: adjust time server 120.25.115.20 offset -0.015854 sec

[root@master ~]# hwclock
2018年09月13日 星期四 14时49分51秒  -0.646898 秒

安装Kubernetes,配置dockers镜像

[root@master ~]# wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
快速安装与配置kubernetes集群搭快速安装与配置kubernetes集群搭
快速安装与配置kubernetes集群搭快速安装与配置kubernetes集群搭

配置kubernetes仓库

[root@master yum.repos.d]# vim kubernetes.repo
[kubernetes]
name=kubernetes Repo
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
enabled=1
快速安装与配置kubernetes集群搭快速安装与配置kubernetes集群搭
快速安装与配置kubernetes集群搭快速安装与配置kubernetes集群搭
[root@master ~]# wget https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
[root@master ~]# rpm --import rpm-package-key.gpg
[root@master yum.repos.d]# yum repolist
快速安装与配置kubernetes集群搭快速安装与配置kubernetes集群搭
[root@master yum.repos.d]# scp CentOS-Base.repo docker-ce.repo kubernetes.repo node1:/etc/yum.repos.d/
快速安装与配置kubernetes集群搭快速安装与配置kubernetes集群搭

安装docker和kubelet

[root@master ~]# yum -y install docker-ce kubelet kubeadm kubectl
快速安装与配置kubernetes集群搭快速安装与配置kubernetes集群搭

环境变量

[root@master ~]# vim /usr/lib/systemd/system/docker.service
手动添加一行
Environment="HTTPS_PROXY=http://www.ik8s.io:10080"
Environment="NO_PROXY=127.0.0.0/8,172.0.0.0/16"
快速安装与配置kubernetes集群搭快速安装与配置kubernetes集群搭
[root@master ~]# systemctl daemon-reload

启动docker
[root@master ~]# systemctl start docker

设置开机启动
[root@master ~]# systemctl enable docker
[root@master ~]# docker info

保证输出的都是1
[root@master ~]# cat /proc/sys/net/bridge/bridge-nf-call-ip6tables
1
[root@master ~]# cat /proc/sys/net/bridge/bridge-nf-call-iptables
1

[root@master ~]# rpm -ql kubelet
/etc/kubernetes/manifests  #清单目录
/etc/sysconfig/kubelet   #配置文件
/etc/systemd/system/kubelet.service  
/usr/bin/kubelet   #主程序

设置开机启动
[root@master ~]# systemctl enable kubelet
快速安装与配置kubernetes集群搭快速安装与配置kubernetes集群搭

初始化

[root@master ~]# kubeadm init --kubernetes-version=v1.11.1 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12
快速安装与配置kubernetes集群搭快速安装与配置kubernetes集群搭

报错信息,解决办法:

[root@master ~]# vim /etc/sysconfig/kubelet
KUBELET_EXTRA_ARGS="--fail-swap-on=false"

[root@master ~]# kubeadm init --kubernetes-version=v1.11.1 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12 --ignore-preflight-errors=Swap
快速安装与配置kubernetes集群搭快速安装与配置kubernetes集群搭

注意这一条命令需要保存好(添加集群使用)

kubeadm join 192.168.2.102:6443 --token ns4kps.j8cuqwf78emp5a5b --discovery-token-ca-cert-hash sha256:b71b7e52c318959bab3f05f02f6fe51d6396d8c54ea6849ec7556927d1c6c88a

[root@master ~]# docker image ls
快速安装与配置kubernetes集群搭快速安装与配置kubernetes集群搭
[root@master ~]# ss –ntl
快速安装与配置kubernetes集群搭快速安装与配置kubernetes集群搭
[root@master ~]# mkdir -p $HOME/.kube
[root@master ~]# cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

检测组件运行是否正常
[root@master ~]# kubectl get cs
快速安装与配置kubernetes集群搭快速安装与配置kubernetes集群搭

查看并验证节点信息是否成功

[root@master ~]# kubectl get nodes
NAME      STATUS     ROLES     AGE       VERSION
master    NotReady   master    44m       v1.11.3

安装flannel

[root@master ~]# kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
[root@master ~]# curl -sSL "https://github.com/coreos/flannel/blob/master/Documentation/kube-flannel.yml?raw=true" | kubectl create -f -
快速安装与配置kubernetes集群搭快速安装与配置kubernetes集群搭
[root@master ~]# docker image ls
快速安装与配置kubernetes集群搭快速安装与配置kubernetes集群搭

查看并验证节点信息是否成功

[root@master ~]# kubectl get  nodes
NAME      STATUS    ROLES     AGE       VERSION
master    Ready     master    2h        v1.11.3

查看pod运行情况

[root@master ~]# kubectl get pods -n kube-system
快速安装与配置kubernetes集群搭快速安装与配置kubernetes集群搭

配置文件传到node1、node2

[root@master ~]# scp /usr/lib/systemd/system/docker.service node1:/usr/lib/systemd/system/docker.service

[root@master ~]# scp /etc/sysconfig/kubelet node1:/etc/sysconfig/

[root@master ~]# scp /usr/lib/systemd/system/docker.service node2:/usr/lib/systemd/system/docker.service

[root@master ~]# scp /etc/sysconfig/kubelet node2:/etc/sysconfig/

node1服务器配置

[root@node1 ~]# wget https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
快速安装与配置kubernetes集群搭快速安装与配置kubernetes集群搭
[root@node1 ~]# rpm --import rpm-package-key.gpg

安装docker、kubelet

[root@node1 ~]# yum -y install docker-ce kubelet kubeadm
快速安装与配置kubernetes集群搭快速安装与配置kubernetes集群搭

启动docker

[root@node1 ~]# systemctl start docker
[root@node1 ~]# systemctl enable docker kubelet

[root@node1 ~]# docker info

添加主集群里

[root@node1 ~]# kubeadm join 192.168.2.102:6443 --token ns4kps.j8cuqwf78emp5a5b --discovery-token-ca-cert-hash sha256:b71b7e52c318959bab3f05f02f6fe51d6396d8c54ea6849ec7556927d1c6c88a --ignore-preflight-errors=Swap
快速安装与配置kubernetes集群搭快速安装与配置kubernetes集群搭

查看下载镜像

[root@node1 ~]# docker image ls
快速安装与配置kubernetes集群搭快速安装与配置kubernetes集群搭

在master服务器上可以查节点信息

[root@master ~]# kubectl get nodes
NAME      STATUS    ROLES     AGE       VERSION
master    Ready     master    3h        v1.11.3
node1     Ready         7m        v1.11.3

[root@master ~]# kubectl get pods -n kube-system -o wide
快速安装与配置kubernetes集群搭快速安装与配置kubernetes集群搭

node2服务器配置

[root@node2 ~]# wget https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
快速安装与配置kubernetes集群搭快速安装与配置kubernetes集群搭
[root@node2 ~]# rpm --import rpm-package-key.gpg

安装docker、kubelet

[root@node2 ~]#  yum -y install docker-ce kubelet kubeadm
快速安装与配置kubernetes集群搭快速安装与配置kubernetes集群搭

启动docker

[root@node2 ~]# systemctl start docker
[root@node2 ~]# systemctl enable docker kubelet
[root@node2 ~]# docker info
快速安装与配置kubernetes集群搭快速安装与配置kubernetes集群搭

添加主集群里

[root@node2 ~]# kubeadm join 192.168.2.102:6443 --token ns4kps.j8cuqwf78emp5a5b --discovery-token-ca-cert-hash sha256:b71b7e52c318959bab3f05f02f6fe51d6396d8c54ea6849ec7556927d1c6c88a --ignore-preflight-errors=Swap
快速安装与配置kubernetes集群搭快速安装与配置kubernetes集群搭

在master服务器上可以查节点信息

[root@master ~]# kubectl get nodes
快速安装与配置kubernetes集群搭快速安装与配置kubernetes集群搭
[root@master ~]# kubectl get pods -n kube-system -o wide
快速安装与配置kubernetes集群搭快速安装与配置kubernetes集群搭

以上就是良许教程网为各位朋友分享的Linux系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !

img
本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

邮箱地址不会被公开。 必填项已用*标注

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部