使用rke搭建k8s集群

本文详细介绍了如何使用rke在三台CentOS7机器上搭建k8s集群,包括装机配置、安装docker、rke安装k8s、安装kubectl以及后续的helm部署和命令补全。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

计划三台机器用rke安装k8s,rke安装之前先配好一台的环境,然后克隆。
版本信息:

软件版本
osCentOS Linux release 7.5.1804
docker18.06.2-ce
rkev0.2.4(默认k8s版本:v1.13.5-rancher1-3)
kubectlv1.15.0

一、装机,配静态ip,装常用软件

用vmware最小化安装centos7后,修改主机名和hosts文件。

vi /etc/hostname
vi /etc/hosts

配置静态ip

进入vmware,菜单栏选择“编辑-虚拟网络编辑器”,在最上边选择nat那个网卡,取消勾选最下边的“使用本地dhcp服务……”,点击中间的“nat设置”,记住ip、子网掩码,网关。

然后本地的windows网络设置,适配器设置里找到vmware的对应的nat那个网卡,在ipv4设置里改成静态获取,填上边记住的内容。

进入虚拟机,vi /etc/sysconfig/network-scripts/ifcfg-ens33,需要修改的:

BOOTPROTO="static"
ONBOOT="yes"
IPADDR=192.168.xxx.xxx
NETMASK=255.255.255.0
GATEWAY=192.168.xxx.x
DNS1=8.8.8.8
DNS2=114.114.114.114

重启:service network restart或者systemctl restart network

安装常用软件(可以不装)

yum install -y lrzsz
yum install -y net-tools
yum install -y wget
yum install -y vim-enhanced
yum install -y bash-completion
yum install -y git
yum install -y telnet
yum install -y telnet-server

二、安装docker

环境配置

  1. 禁用selinux:修改配置文件/etc/sysconfig/selinux,设置SELINUX=disabled
  2. 禁用交换分区:修改/etc/fstab,注释掉swap项。
  3. 关闭防火墙:systemctl disable firewalld && systemctl stop firewalld && systemctl status firewalld

重启一波。

删除旧版本残留

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

删除残留镜像、容器、卷文件:

rm –rf /var/lib/docker/

rpm方式安装docker

官网提供多种方式安装:https://docs.docker.com/install/linux/docker-ce/centos/
本文采用方式是官网下载rpm包:https://download.docker.com/linux/centos/7/x86_64/stable/Packages/
传到虚拟机,虚拟机里安装:

cd到rpm包所在目录,
yum install -y ./docker-ce-18.06.2.ce-3.el7.x86_64.rpm

修改docker配置

mkdir /etc/docker
vi /etc/docker/daemon.json
添加:
{
    "registry-mirrors": [
        "https://registry.docker-cn.com"
    ],
    "dns":[
        "114.114.114.114",
        "8.8.8.8",
        "8.8.4.4"
    ]
}

然后使之生效:systemctl daemon-reload
设置开机自启:systemctl enable docker
启动:systemctl start docker
测试:docker run hello-world

三、rke安装k8s

安装前修改配置

此处默认安装docker前的配置修改已经完成。

  1. rke安装需要新建用户并添加到docker组:

    useradd xxx
    passwd xxx
    usermod -aG docker xxx
    

    顺便添加一下sudo权限:

    vi /etc/sudoers
    找到这一行:"root ALL=(ALL) ALL",
    在下面添加"xxx ALL=(ALL) ALL"(这里的xxx是你的用户名)
    
  2. 启动ipv4转发:CentOS7下可编辑配置文件/etc/sysctl.conf,添加:

    net.ipv4.ip_forward = 1              
    net.bridge.bridge-nf-call-ip6tables = 1
    net.bridge.bridge-nf-call-iptables = 1
    

    执行sudo sysctl -p 立刻生效。

虚拟机克隆

关机,打个快照,然后用vmware的克隆功能克隆出2个。修改静态ip、主机名和hosts文件。关机打快照。

ssh配置

接下来切换到前边自己建的普通用户:su - xxx
在打算安装rke的那台机器执行:

 ssh-keygen  #三次回车

然后发送公钥给另两台机器以及自己本身:

ssh-copy-id 用户名@机器IP #输入yes和密码

测试免密:

ssh 用户名@机器IP

rke安装

下载地址:https://github.com/rancher/rke/releases/tag/v0.2.4
传到ssh免密的那一台虚拟机,改个名,赋个执行权限:

mv rke_linux-amd64 rke-v0.2.4
chmod +x rke-v0.2.4

同目录下创建cluster.yml文件:

nodes:
  - address: 192.168.178.xxx
    user: 前边自己建的用户
    role: [controlplane,etcd]
  - address: 192.168.178.xxx
    user: 前边自己建的用户
    role: [etcd,worker]
  - address: 192.168.178.xxx
    user: 前边自己建的用户
    role: [etcd,worker]

开始安装(是个幂等操作):

./rke-v0.2.4 up --config cluster.yml

完成后当前目录会生成kube_config_cluster.yml文件和cluster.rkestate文件。

安装kubectl

下载最新版(当前是v1.15.0):

curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl

也可下载指定版本,详见官网:https://kubernetes.io/docs/tasks/tools/install-kubectl/

传到一台机器上,赋予执行权限,放到bin目录:

chmod +x ./kubectl
sudo mv ./kubectl /usr/local/bin/kubectl

rke安装后,会在当前目录生成k8s集群配置文件kube_config_cluster.yml,拷贝这个文件并重命名为~/.kube/config。然后测试使用:

kubectl get node

四、其它后续

helm安装

版本:

软件版本
helmv2.14.1
tillerv2.14.1+unreleased

官网下载:https://github.com/helm/helm/releases

sudo tar -xzvf helm-v2.14.1-linux-amd64.tar.gz
cd linux-amd64/
sudo cp helm /usr/local/bin/
helm init

这里init需要翻墙下载tiller镜像,不然会失败,不翻墙可以这样做:

kubectl get pod -n kube-system 
#找到tiller并且describe一下,记住下载失败的tiller镜像版本
#比如叫gcr.io/kubernetes-helm/tiller:v2.14.1
#到docker hub按最近更新搜tiller,找对应版本
helm init --tiller-image=jessestuart/tiller:v2.14.1 --upgrade

如果集群启用rbac,helm ls命令会失败,还需要做:

# 在kube-system命名空间中创建tiller账户
kubectl create serviceaccount --namespace kube-system tiller
# 创建角色并授予cluster-admin权限
kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller
# 指定账户进行初始化,别忘了还要指定tiller镜像哦
helm init --service-account tiller --tiller-image=jessestuart/tiller:v2.14.1 --upgrade
# 等待pod重启后验证
helm ls

kubectl和helm命令补全

yum install -y bash-completion
source <(kubectl completion bash)
echo "source <(kubectl completion bash)" >> ~/.bashrc
source <(helm completion bash)
echo "source <(helm completion bash)" >> ~/.bashrc
source /usr/share/bash-completion/bash_completion
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值