centos7.6搭建K8s(Kubernetes)

基于kubeamd方式部署K8s解决方案
img
Master:192.168.0.26 node1:192.168.0.191 node2:192.168.0.94

一、初始化操作

1、首先关闭三台服务器的防火墙

systemctl stop firewalld #永久关闭

systemctl disable firewalld #永久关闭

永久关闭selinux

sed -i ‘s/enforcing/disabled/’ /etc/selinux/config

关闭swap分区

swapoff -a #临时

sed -ri ‘s/.swap./#&/’ /etc/fstab #永久关闭

2、给三台主机添加主机名称方便管理

Hostnamectl ecs-K8s-master

Hostnamectl ecs-K8s-node1

Hostnamectl ecs-K8s-node2

在master服务器添加hosts,其他不用添加

/etc/hosts配置文件中加入你的ip及修改的名字

192.168.0.26 ecs-K8s-master

192.168.0.191 ecs-K8s-node1

192.168.0.94 ecs-K8s-node2

3、将桥接的IPV4流量传递到iptanles的链

/etc/sysctl.d/k8s.conf 三台服务器的配置文件加入下面两行。

net.bridge.bridge-nf-call-ip6tables=1

net.bridge.bridge-nf-call-iptables=1

执行如下立即生效

sysctl --system

4、三台服务器同步时间

yum -y install ntpdate -y

ntpdate time.windows.com

二、所有节点的准备工作

1、所有节点安装docker

wget -i http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

cp docker-ce.repo /etc/yum.repos.d/

安装所需软件包

yum install -y yum-utils

yum -y install device-mapper-persistent-data

yum -y install lvm2

查看各版本docker

yum list docker-ce --showduplicates | sort -r

安装dockers

yum install docker-ce-18.06.1.ce-3.el7

启动dockers

systemctl start docker

2、Docker中的仓库配置(所有节点)

cat >/etc/docker/daemon.json << EOF

{

“registry-mirrors”:[“https://b9pmyelo.mirror.aliyuncs.com”]

}

EOF

配置完成需要重启docker

systemctl restart docker

3、添加阿里云yum软件源(所有节点执行)

cat < /etc/yum.repos.d/kubernetes.repo

[kubernetes]

name=Kubernetes

baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-aarch64

enabled=1

gpgcheck=0

repo_gpgcheck=0

gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg

http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg

EOF

4、部署kubeadm,kubelet和kubectl(所有节点执行)

由于版本更新频繁,这里指定版本号部署

yum clean all

rpm --rebuilddb

yum update

yum install -y kubelet-1.18.0 kubeadm-1.18.0 kubectl-1.18.0

检查是否安装

rpm -qa | grep kubelet

rpm -qa | grep kubeadm

rpm -qa | grep kubectl

rpm -qa | grep kubernetes-cni

启动kubelet,并设置开机启动

systemctl enable kubelet && systemctl start kubelet

5、初始化master(在master上面执行)

###apiserver-advertise-address指定master的ip地址

###pod-network-cidr指定Pod网络的范围,这里使用flannel网络方案

kubeadm init --kubernetes-version=1.18.0 --apiserver-advertise-address=192.168.0.26 --image-repository registry.aliyuncs.com/google_containers --service-cidr=10.1.0.0/16 --pod-network-cidr=10.244.0.0/16

完成后结果如下,不过有两部分需要在master,与node上面执行。
img
在mster执行如下
img
6、加入kubernetes node
执行完成可以使用kubectl get nodes 查看当前节点信息。已经有我们master的节点信息了。
img
在所有node节点执行上图的命令,将node节点加入。
Node1执行
img
Node2执行
img
在master节点执行kubectl get nodes,查看是否两个节点加入。
img
7、部署CNI网络插件(在master执行)

Kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
img
kubectl get pods -n kube-system
查看是否执行完成已经运行
img
上面的状态全部为1/1时,使用kubectl get nodes,查看是否是已经就绪
img
集群已经搭建完成。

8、测试kubernetes集群

在kubernetes集群中创建一个pod,验证是否正常运行。

kubectl create deployment nginx --image=nginx 拉取一个nginx
img
kubectl get pod 查看是否拉取完成。Running已经拉取完成
img
当状态是running时执行对外进行端口暴露。
kubectl expose deployment nginx --port=80 --type=NodePort
img
kubectl get pod,svc 查看对外的端口
img
这边实验是通过华为云服务器测试,需要在云平台的安全组开放这个端口,不然无法访问,如果是虚拟机的话就直接访问就行。
测试访问master的ip加上31667测试可以访问。
img
测试node1节点的ip加上31667测试也是可以访问。
img
这边实验是通过华为云服务器测试,需要在云平台的安全组开放这个端口,不然无法访问,如果是虚拟机的话就直接访问就行。
测试访问master的ip加上31667测试可以访问。
测试node1节点的ip加上31667测试也是可以访问。
k8s集群搭建完成

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值