Centos7 下部署 1Master 1Node Kubernetes 1.15.0

该博客详细介绍了如何在两台CentOS7虚拟机上离线搭建k8s集群,包括环境准备、主机名设置、静态IP配置、关闭防火墙、安装Docker、加载镜像、安装k8s组件、初始化master节点、配置网络、节点加入集群及安装Dashboard等步骤。
摘要由CSDN通过智能技术生成

参考1 参考2

架构规划

k8s至少需要一个Master和一个Node才能组成一个可用集群,本文搭建一个Master节点和一个Node节点。采用vmware新建的两个centos7虚拟机进行部署,部署之前参考下面的链接将虚拟机IP地址配置静态IP,防止在dhcp模式下,重启后IP地址发生改变。

一 、环境准备

节点主机名IPOS
Master    k8s-1     192.168.203.222      centos 7       
Node1k8s-2192.168.203.223centos 7

二、离线包下载

参考此链接1:链接:https://pan.baidu.com/s/1lty5BLoz4eSBC7fKpSfj8A 提取码:eftw,

参考此链接2:链接: https://pan.baidu.com/s/19CRg4v3oACVSfZal_zi9oQ 提取码: 132g,

在此也感谢两位前辈的无私奉献,本文需要这两个连接中的文件

三、设置主机名

//root权限下
//Master上执行: 
hostnamectl --static set-hostname k8s-1

//重启
reboot

//Node1上执行: 
hostnamectl --static set-hostname k8s-2

//重启
reboot

四、分别修改节点的hosts文件,并使内容保持一致

//Master、Node1编辑hosts文件
vi /etc/hosts

//新增下面的内容,wq保存。
192.168.203.222 k8s-1  

192.168.203.223 k8s-2

五、关闭防火墙

//Master、Node1执行
systemctl stop firewalld && systemctl disable firewalld

六、安装docker(master&node)

cd k8s_images

rpm -ihv docker-ce-selinux-17.03.2.ce-1.el7.centos.noarch.rpm

   发现缺少依赖包的错误

  

 则:

cd mypackages

yum -y install *.rpm

已加载插件:fastestmirror, langpacks
正在检查 audit-libs-python-2.7.6-3.el7.x86_64.rpm: audit-libs-python-2.7.6-3.el7.x86_64
audit-libs-python-2.7.6-3.el7.x86_64.rpm:不更新已安装的软件包。
正在检查 checkpolicy-2.5-4.el7.x86_64.rpm: checkpolicy-2.5-4.el7.x86_64
checkpolicy-2.5-4.el7.x86_64.rpm:不更新已安装的软件包。
正在检查 libcgroup-0.41-13.el7.x86_64.rpm: libcgroup-0.41-13.el7.x86_64
libcgroup-0.41-13.el7.x86_64.rpm:不更新已安装的软件包。
正在检查 libseccomp-2.3.1-3.el7.x86_64.rpm: libseccomp-2.3.1-3.el7.x86_64
libseccomp-2.3.1-3.el7.x86_64.rpm:不更新已安装的软件包。
正在检查 libsemanage-python-2.5-8.el7.x86_64.rpm: libsemanage-python-2.5-8.el7.x86_64
libsemanage-python-2.5-8.el7.x86_64.rpm:不更新已安装的软件包。
正在检查 policycoreutils-python-2.5-17.1.el7.x86_64.rpm: policycoreutils-python-2.5-17.1.el7.x86_64
policycoreutils-python-2.5-17.1.el7.x86_64.rpm:不更新已安装的软件包。
正在检查 python-IPy-0.75-6.el7.noarch.rpm: python-IPy-0.75-6.el7.noarch
python-IPy-0.75-6.el7.noarch.rpm:不更新已安装的软件包。
正在检查 setools-libs-3.3.8-1.1.el7.x86_64.rpm: setools-libs-3.3.8-1.1.el7.x86_64
setools-libs-3.3.8-1.1.el7.x86_64.rpm:不更新已安装的软件包。
错误:无须任何处理

cd k8s_images

rpm -ihv docker-ce-selinux-17.03.2.ce-1.el7.centos.noarch.rpm

准备中...                          ################################# [100%]
	软件包 docker-ce-selinux-17.03.2.ce-1.el7.centos.noarch 已经安装

rpm -ihv docker-ce-17.03.2.ce-1.el7.centos.x86_64.rpm

准备中...                          ################################# [100%]
正在升级/安装...
   1:docker-ce-17.03.2.ce-1.el7.centos                                  (  2%################################# [100%]
//若出现下图情况需要先执行 
rpm -ihv libtool-ltdl-2.4.2-22.el7_3.x86_64.rpm

systemctl start docker && systemctl enable docker

docker version

Client:
 Version:      17.03.2-ce
 API version:  1.27
 Go version:   go1.7.5
 Git commit:   f5ec1e2
 Built:        Tue Jun 27 02:21:36 2017
 OS/Arch:      linux/amd64

Server:
 Version:      17.03.2-ce
 API version:  1.27 (minimum version 1.12)
 Go version:   go1.7.5
 Git commit:   f5ec1e2
 Built:        Tue Jun 27 02:21:36 2017
 OS/Arch:      linux/amd64
 Experimental: false

七、加载镜像(master&node)

加载镜像文件(一共10个镜像)

cd k8s/

for i in $(ls *.tar); do docker load < $i ; done  

八、环境配置(master&node)

安装kubelet kubeadm kubectl及其组件

cd k8s/kube_adm&let&ctl

rpm -ivh *.rpm

启动kublet,并开机自启动

systemctl start kubelet && systemctl enable kubelet

centos7用户需要设置路由(安装bridge-utils)

cd k8s/

rpm -ivh bridge-utils-1.5-9.el7.x86_64.rpm  

加载br_netfilter模块,使用lsmod查看开启的模块

modprobe  br_netfilter  

配置路由参数,防止kubeadm报路由警告

cat <<EOF >  /etc/sysctl.d/k8s.conf

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

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

EOF

使得上述命令生效

sysctl --system  

关闭selinux

setenforce 0

sed -i "s/^SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config

k8s要求关闭swap

swapoff -a && sysctl -w vm.swappiness=0

sed -ri '/^[^#]*swap/s@^@#@' /etc/fstab  

修改docker的驱动

vi /etc/docker/daemon.json

#加入下面的内容:

{  "exec-opts": ["native.cgroupdriver=systemd"]  }

重启docker

systemctl restart docker && systemctl status docker

九、安装k8s集群master节点

初始化

kubeadm init  --pod-network-cidr 10.244.0.0/16 --kubernetes-version 1.15.0

初始化完配置kubectl环境(master&node)

将master下/etc/kubernetes路径下的内容拷贝到每个node节点的相同路径下

//对于非root用户
su 非root用户

mkdir -p $HOME/.kube

cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

chown $(id -u):$(id -g) $HOME/.kube/config

//对于root用户
export   KUBECONFIG=/etc/kubernetes/admin.conf

//也可以直接放到~/.bash_profile
echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile

//source一下环境变量
source ~/.bash_profile

//查看版本
kubectl version

配置网络,应用flannel网络

kubectl apply -f kube-flannel.yml

十、node节点加入k8s集群

下述命令在master节点 kubeadm init 时产生,在node上输入

kubeadm join 192.168.233.145:6443 --token 0kv4cf.d5tkaw8k2u32w6qh --discovery-token-ca-cert-hash sha256:3484677e27c15e09d7c413932f2301be44a7f5291b005e3d44cd109c20797f64

十一、安装dashboard

用于存放用户名、密码、用户ID

echo "admin,admin,1" > /etc/kubernetes/pki/basic_auth_file

编辑kube-apiserver.yaml,给kube-apiserver添加basic_auth验证

vi /etc/kubernetes/manifests/kube-apiserver.yaml

在镜像之前加入

- --basic-auth-file=/etc/kubernetes/pki/basic_auth_file

创建集群角色权限绑定

kubectl create clusterrolebinding login-on-dashboard-with-cluster-admin --clusterrole=cluster-admin --user=admin

应用yaml文件中的配置

cd k8s/

kubectl apply -f recommended.yaml

查看pod和service

kubectl get pod -n kubernetes-dashboard -o wide

kubectl get svc -n kubernetes-dashboard -o wide

打开火狐浏览器

https://192.168.203.223:30001        (dashboard部署节点的IP)

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

赛博朋克2078

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值