centos7 搭建kubernates

2021-01-20  本文已影响0人  雨中星辰0

centos7 搭建kubernates环境

作者 时间 说明
雨中星辰 2021-1-20

环境说明

前置准备

关闭防火墙

systemctl stop firewalld
systemctl disable firewalld

关闭交换空间

swapoff -a

删除swap的加载

image.png

一键完成命令:sed -i '/swap/s/^/#/' /etc/fstab

将机器bridge模式开启

echo 1 > /proc/sys/net/bridge/bridge-nf-call-iptables
echo 1 > /proc/sys/net/bridge/bridge-nf-call-ip6tables

或修改/usr/lib/sysctl.d/00-system.conf并按照下面方式设置

# Kernel sysctl configuration file
#
# For binary values, 0 is disabled, 1 is enabled.  See sysctl(8) and
# sysctl.conf(5) for more details.

# Enable netfilter on bridges.
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-arptables = 1

快捷命令:

 sed  -i 's/net.bridge.bridge-nf-call-ip6tables.*/net.bridge.bridge-nf-call-ip6tables = 1/' /usr/lib/sysctl.d/00-system.conf
 sed  -i 's/net.bridge.bridge-nf-call-iptables.*/net.bridge.bridge-nf-call-iptables = 1/' /usr/lib/sysctl.d/00-system.conf
sed -i 's/net.bridge.bridge-nf-call-arptables.*/net.bridge.bridge-nf-call-arptables = 1/'  /usr/lib/sysctl.d/00-system.conf

禁用SElinux

修改/etc/sysconfig/selinuxSELINUX=disabled修改为SELINUX=disabled

也可使用下面命令可一键完成。

sed  -i  's/^SELINUX=.*/SELINUX=disabled/g'  /etc/sysconfig/selinux 

安装docker

# step 1: 安装必要的一些系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# Step 2: 添加软件源信息
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# Step 3: 更新缓存
sudo yum makecache fast
# Step 4: 安装docker
sudo yum -y install docker-ce
# Step 5: 开启Docker服务
sudo systemctl start docker
# Step 6: 设置Docker服务开机启动
sudo systemctl enable docker

安装kubernates

安装kubectl

# step 1: 添加kubernetes的阿里云镜像源
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

# Step 2: 更新缓存
setenforce 0
yum makecache fast
# Step 3: 安装kubelet
yum install -y kubelet kubeadm kubectl
# Step 4: 设置kubelet开机启动
systemctl enable kubelet 
# Step 5: 启动kubelet
systemctl start kubelet

配置kubeadm config

# step 1: 将kubeadm config配置输出到本地
kubeadm config print init-defaults >init-config.yaml
# 修改init-config.yaml,将advertiseAddress: 1.2.3.4的ip修改为master的ip,将serviceSubnet: 10.96.0.0/12修改为serviceSubnet: 192.168.0.0/12
vi init-config.yaml

快捷方式:

sed -i 's/advertiseAddress: 1.2.3.4/advertiseAddress: master的ip/' init-config.yaml 
sed -i 's/serviceSubnet: 10.96.0.0/serviceSubnet: 192.168.0.0/' init-config.yaml 

下载kubernates的相关镜像

kubeadm  config images pull --config=init-config.yaml

由于默认拉取镜像地址k8s.gcr.io国内无法访问,需要科学上网或者镜像仓库的方式

我是使用的科学上网代理的方式

image.png

配置方式:

mkdir /etc/systemd/system/docker.service.d
cat <<EOF >  /etc/systemd/system/docker.service.d/http-proxy.conf  
[Service]
Environment="HTTP_PROXY=http://192.168.1.30:1080"
EOF

执行初始化,并安装master

kubeadm init --config=init-config.yaml 
image.png

按照提示进行配置,例

  mkdir -p $HOME/.kube
  sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
  sudo chown $(id -u):$(id -g) $HOME/.kube/config

让Master也是Node

由于测试只准备了一台机器,就将Master和Node装一台机器了。

 kubectl taint nodes --all node-role.kubernetes.io/master-

安装网络插件

Kubernates 默认是没有安装网络CNI插件的,需要自行选择一个进行安装。

在没有安装CNI网络插件时,执行命令kubectl get nodes会发现Master状态为NotReady

image.png

这里我选择了weave的网络插件,安装命令:kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"

测试kubernates功能

image.png image.png

其中红色部分为nginx映射的本地端口

如果能返回东西,则说明nginx是可用的,咱们整个kubernates环境也没有问题,安装完毕了。

相关问题:

  1. [ERROR FileContent--proc-sys-net-ipv4-ip_forward]: /proc/sys/net/ipv4/ip_forward contents are not set to 1
    echo 1 > /proc/sys/net/ipv4/ip_forward
上一篇下一篇

猜你喜欢

热点阅读