Kubernetes安装搭建二(二进制文件)


一、通过二进制文件工具安装

本例还是部署3个节点,1Master 2 Node。

1.准备工作

1.1 下载安装包

Kubernetes 二进制文件的下载地址为:

https://github.com/kubernetes/kubernetes/releases

K8s 将二进制包分为 Client Binaries 、 Server Binaries 以及 Node Binaries ,分别为 客户端二进制包、Master节点二进制包以及Node节点二进制包。

本例,我们在CentOS上安装,需要下载kubernetes-server-linux-amd64.tar.gz、kubernetes-node-linux-amd64.tar.gz 以及 kubernetes-client-linux-amd64.tar.gz 【可不单独下载】,路径通常为/opt。

cd /opt
wget https://dl.k8s.io/v1.13.4/kubernetes-server-linux-amd64.tar.gz
wget https://dl.k8s.io/v1.13.4/kubernetes-node-linux-amd64.tar.gz

下载etcd 二进制文件

wget https://github.com/etcd-io/etcd/releases/download/v3.3.12/etcd-v3.3.12-linux-amd64.tar.gz

###1.2 关闭防火墙和SELinux

所有节点:

systemctl stop firewalld && systemctl disable firewalld
setenforce 0

编辑/etc/selinux/config

SELINUX=disabled

1.3 禁用交换分区

所有节点禁用CentOS交换分区

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

修改/etc/fstab,将交换分区对应文件系统注释

#/dev/mapper/centos-swap swap        swap    defaults      0 0

1.4 设置Docker所需要的网络参数

Docker只装在node上,node上修改/etc/sysctl.d/k8s.conf ,增加:

net.ipv4.ip_forward=1

执行:

sysctl -p /etc/sysctl.d/k8s.conf

###1.5 配置Docker的yum安装源

对于我们有artifactory这种制品仓库,可以使用artifactory的rpm 源/ docker 源等等。

假设默认CentOs上没有Docker的yum源,使用以下命令添加:

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

用yum-config-manager来管理和配置CentOS的软件仓库。如果没有,则用以下命令安装:

yum install yum-utils

1.6安装Docker

设置好软件源,就可以yum安装Docker CE:

yum install docker-ce

启动:

systemctl enable docker
systemctl start docker 

###1.7 创建安装目录

将K8s安装在/k8s目录中,先创建几个相关目录

mkdir -p /k8s/etcd/bin /k8s/etcd/cfg
mkdir -p /k8s/kubernetes/bin /k8s/kubernetes/cfg /k8s/kubernetes/ssl

2.部署etcd

解压前面下载的etcd-v3.3.12-linux-amd64.tar.gz:

tar -xvf etcd-v3.3.12-linux-amd64.tar.gz

然后复制etcd和etcdctl到/k8s/etcd/bin

cp etcd-v3.3.12-linux-amd64/etcd etcd-v3.3.12-linux-amd64/etcdctl /k8s/etcd/bin/

配置etcd 。需要在3个主机上创建etcd配置文件,区别仅仅在于IP地址。

Master节点

vi /k8s/etcd/cfg/etcd
#内容如下
# [Member]
ETCD_NAME="etcd01"
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_PEER_URLS="http://192.168.1.121:2380"
ETCD_LISTEN_CLIENT_URLS="http://192.168.1.121:2379"
# [Clustering]
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.1.121:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.1.121:2379"
ETCD_INITAL_CLUSTER="etcd01=http://192.168.1.121:2380,etcd02=http://192.168.1.122:2380,etcd3=http://192.168.1.123:2380"
ETCD_INITAL_CLUSTER_TOKEN="etcd-cluster"
ETCD_INITAL_CLUSTER_STATE="new"

接下来是Node 1节点,创建配置文件:

vim /k8s/etcd/cfg/etcd

内容如下:

# [Member]
ETCD_NAME="etcd02"
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_PEER_URLS="http://192.168.1.122:2380"
ETCD_LISTEN_CLIENT_URLS="http://192.168.1.122:2379"

#[Clustering]
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.1.122:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.1.122:2379"
ETCD_INITIAL_CLUSTER="etcd01=http://192.168.1.121:2380,etcd02=http://192.168.1.122:2380,etcd03=http://192.168.1.123:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
ETCD_INITIAL_CLUSTER_STATE="new"

Node 2 参照以上配置。

然后创建etcd的系统服务单元文件,由于在3个节点中,etcd的安装位置完全相同,所以3个节点的etcd系统服务单元文件完全相同。

所有节点上执行:

vim /lib/systemd/system/etcd.service

内容如下:

[Unit]
Description=Etcd Server
After=network.target
After=network-online.target
Wants=network-online.target

[Service]
Type=notify
EnvironmentFile=/k8s/etcd/cfg/etcd
ExecStart=/k8s/etcd/bin/etcd \
--name=${ETCD_NAME} \
--data-dir=${ETCD_DATA_DIR} \
--listen-peer-urls=${ETCD_LISTEN_PEER_URLS} \
--listen-client-urls=${ETCD_LISTEN_CLIENT_URLS}, http://127.0.0.1:2379 \
--advertise-client-urls=${ETCD_ADVERTISE_CLIENT_URLS} \
--initial-advertise-peer-urls=${ETCD_INITIAL_ADVERTISE_PEER_URLS} \
--initial-cluster=${ETCD_INITIAL_CLUSTER} \
--initial-cluster-token=${ETCD_INITIAL_CLUSTER_TOKEN} \
--initial-cluster-state=new
Restart=on-failure
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target

最后在3个节点启动etcd服务

systemctl enable etcd
systemctl start etcd

配置完成后,验证集群是否正常

/k8s/etcd/bin/etcdctl cluster-health

TIPS: 启动集群时需要同时启动所有的节点。

3.部署flannel网络

在两个Node节点上下载flannel的二进制文件:

https://github.com/coreos/flannel/releases

下载后的文件名为:etcd-v3.3.12-linux-amd64.tar.gz
tar zxvf 解压
将解压的flanneld和mk-docker-opts.sh复制到/k8s/kubernetes/bin/

cp flanneld mk-docker-opts.sh /k8s/kubernetes/bin/

创建flannel 配置文件/k8s/kubernetes/cfg/flanneld

FLANNEL_OPTIONS="--etcd-endpoints=http://192.168.1.121:2379,http://192.168.1.122:2379,http://192.168.1.123:2379"

在etcd集群中写入Pod网络信息

/k8s/etcd/bin/etcdctl set /coreos.com/network/config '{ "Network": "172.18.0.0/16", "Backend":{"Type": "vxlan"}}'

创建flannel的系统服务单元文件/lib/systemd/system/flanneld.service

[Unit]
Description=Flanneld overlay address etcd agent
After=network-online.target network.target
Before=docker.service

[Service]
Type=notify
EnvironmentFile=/k8s/kubernetes/cfg/flanneld
ExecStart=/k8s/kubernetes/bin/flanneld --ip-masq $FLANNEL_OPTIONS
ExecStartPost=/k8s/kubernetes/bin/mk-docker-opts.sh -k DOCKER_NETWORK_OPTIONS -d /run/flannel/subnet.env
Restart=on-failure

[Install]
WantedBy=multi-user.target

启动flannel服务

systemctl enable flanneld
systemctl start flanneld

4.部署Master节点

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值