k8s master节点搭建

1.前期准备

a.准备3台虚拟机

  • 192.168.245.20 master
  • 192.168.245.21 node1
  • 192.168.245.22 node2

b.配置静态IP及重启网络

vi /etc/sysconfig/network-scripts/ifcfg-ens33

BOOTPROTO=static
IPADDR=192.168.245.22
NETMASK=255.255.255.0
GATEWAY=192.168.245.2
DNS1=192.168.245.2
ONBOOT=yes

service network restart #重新启动网络

yum install net-tools.x86_64 -y  #安装 ifconfig 管理命令

c.vi /etc/selinux/config

SELINUX=enforcing设置成SELINUX=disabled

d.vi /etc/fstab

注释/dev/mapper/centos-swap swap  swap  defaults  0 0

e.关闭防火墙

systemctl stop firewalld
systemctl disable firewalld

f.vi /etc/hosts

192.168.245.20 matser
192.168.245.21 node1
192.168.245.22 node2

2.下载并解压kubernetes

wget https://dl.k8s.io/v1.15.1/kubernetes-server-linux-amd64.tar.gz
tar -zxvf kubernetes-server-linux-amd64.tar.gz

3.把相关命令拷贝到环境变量目录下

cp kube-apiserver kube-controller-manager kube-scheduler /usr/bin/

4.安装kube-apiserver

mkdir -p /usr/local/k8s/conf/
vi /usr/lib/systemd/system/kube-apiserver.service

[Unit]
Description=Kubernetes API Server
Documentation=https://github.com/kubernetes/kubernetes
[Service]
EnvironmentFile=-/usr/local/k8s/conf/kube-apiserver
ExecStart=/usr/bin/kube-apiserver \
${KUBE_LOGTOSTDERR} \
${KUBE_LOG_LEVEL} \
${KUBE_ETCD_SERVERS} \
${KUBE_API_ADDRESS} \
${KUBE_API_PORT} \
${KUBE_ADVERTISE_ADDR} \
${KUBE_ALLOW_PRIV} \
${KUBE_SERVICE_ADDRESSES}
Restart=on-failure
[Install]
WantedBy=multi-user.target

vi /usr/local/k8s/conf/kube-apiserver

#启用日志标准错误
KUBE_LOGTOSTDERR="--logtostderr=true"
#日志级别
KUBE_LOG_LEVEL="--v=4"
#Etcd服务地址
KUBE_ETCD_SERVERS="--etcd-servers=http://192.168.245.20:2379,http://192.168.245.21:2379,http://192.168.245.22:2379"
#API服务监听地址
KUBE_API_ADDRESS="--insecure-bind-address=0.0.0.0"
#API服务监听端口
KUBE_API_PORT="--insecure-port=8080"
#对集群中成员提供API服务地址
KUBE_ADVERTISE_ADDR="--advertise-address=0.0.0.0"
#允许容器请求特权模式,默认false
KUBE_ALLOW_PRIV="--allow-privileged=false"
#集群分配的IP范围,自定义但是要跟后面的kubelet(服务节点)的配置DNS在一个区间
KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=10.0.0.0/24" 

systemctl enable kube-apiserver  #加入开机自动启动
systemctl start kube-apiserver  #启动服务

5.安装kube-controller-manager

vi /usr/lib/systemd/system/kube-controller-manager.service

[Unit]
Description=Kubernetes Controller Manager
Documentation=https://github.com/kubernetes/kubernetes
After=kube-apiserver.service
Requires=kube-apiserver.service
[Service]
EnvironmentFile=-/usr/local/k8s/conf/kube-controller-manager
ExecStart=/usr/bin/kube-controller-manager \
${KUBE_LOGTOSTDERR} \
${KUBE_LOG_LEVEL} \
${KUBE_MASTER} \
${KUBE_LEADER_ELECT}
Restart=on-failure
[Install]
WantedBy=multi-user.target

vi /usr/local/k8s/conf/kube-controller-manager 

KUBE_LOGTOSTDERR="--logtostderr=true"
KUBE_LOG_LEVEL="--v=4"
KUBE_MASTER="--master=192.168.245.20:8080"

systemctl enable kube-controller-manager  #加入开机自动启动
systemctl start kube-controller-manager  #启动服务

6.安装kube-scheduler

vi /usr/lib/systemd/system/kube-scheduler.service

[Unit]
Description=Kubernetes Scheduler
Documentation=https://github.com/kubernetes/kubernetes
After=kube-apiserver.service
Requires=kube-apiserver.service
[Service]
EnvironmentFile=-/usr/local/k8s/conf/kube-scheduler
ExecStart=/usr/bin/kube-scheduler \
${KUBE_LOGTOSTDERR} \
${KUBE_LOG_LEVEL} \
${KUBE_MASTER} \
${KUBE_LEADER_ELECT}
Restart=on-failure
[Install]
WantedBy=multi-user.target

vi /usr/local/k8s/conf/kube-scheduler 

KUBE_LOGTOSTDERR="--logtostderr=true"
KUBE_LOG_LEVEL="--v=4"
KUBE_MASTER="--master=192.168.245.20:8080"
KUBE_LEADER_ELECT="--leader-elect"

systemctl enable kube-scheduler  #加入开机自动启动
systemctl start kube-scheduler  #启动服务