kubenetes安装

1.安装etcd

下载解压
wget https://github.com/etcd-io/etcd/releases/download/v2.1.0-rc.0/etcd-v2.1.0-rc.0-linux-amd64.tar.gz

tar -xvf  etcd-v2.1.0-rc.0-linux-amd64.tar.gz

cp etcd etcdctl  /usr/bin

1.1 配置service文件
/lib/systemd/system/etcd.service

[Unit]
Description=Etcd Server
After=network.target

[Service]
Type=simple
WorkingDirectory=/var/lib/etcd/
EnvironmentFile=/etc/etcd/etcd.conf
ExecStart=/usr/bin/etcd

[Install]
WantedBy=multi-user.target


1.2 创建相关文件夹(etcd配置文件不需要特殊指定,只创建文件夹即可)
mkdir -p /etc/etcd/
cd /etc/etcd/
touch etcd.conf

mkdir -p /var/lib/etcd/


检测是否安装成功
etcdctl ls

服务重新加载和启动
systemctl daemon-reload
systemctl enable etcd
systemctl start etcd

2.安装docker

apt-get update
apt-get install docker.io

修改docker镜像加速
vim /etc/docker/daemon.json
添加下面的内容
{"registry-mirrors": ["https://s1qqahp3.mirror.aliyuncs.com"]}

查检是否安装成功
docker ps

3.安装kubenetes

老版本的kubenets里,包括二进制执行文件。但3版本以后就没了。因此为简单起建,实验中使用v1.3.0

master节点安装 kube-apiserver /kube-controller-manager /kube-scheduler
下载文件
复制相关文件到/usr/bin

3.1安装kube-apiserver

3.1.1service文件
cat /lib/systemd/system/kube-apiserver.service

[Unit]
Description=Kubernetes API Server
Documentation=https://github.com/GoogleCloudPlatform/kubernetes
After=etcd.service
Requires=etcd.service

[Service]
EnvironmentFile=/etc/kubernetes/apiserver
ExecStart=/usr/bin/kube-apiserver $KUBE_API_ARGS
Type=notify
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target

3.1.2配置文件
cat /etc/kubernetes/apiserver
KUBE_API_ARGS="--etcd_servers=http://127.0.0.1:4001 --insecure-bind-address=0.0.0.0 --insecure-port=8080 --service-cluster-ip-range=169.169.0.0/16 --service-node-port-range=1-65535 --admission_control=NamespaceLifecycle,LimitRanger,ResourceQuota --logtostderr=false --log-dir=/var/log/kubernetes --v=2"


3.2安装kube-controller-manager

3.2.1 service文件
cat /lib/systemd/system/kube-controller-manager.service
[Unit]
Description=Kubernetes Controller Manager
Documentation=https://github.com/GoogleCloudPlatform/kubernetes
After=kube-apiserver.service
Requires=kube-apiserver.service

[Service]
EnvironmentFile=/etc/kubernetes/controller-manager
ExecStart=/usr/bin/kube-controller-manager $KUBE_CONTROLLER_MANAGER_ARGS
Restart=on-failure
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target

3.2.2 配置文件
cat /etc/kubernetes/controller-manager
KUBE_CONTROLLER_MANAGER_ARGS="--master=http://192.168.122.144:8080 --logtostderr=false --log-dir=/var/log/kubernetes --v=2"

3.3 安装kube-scheduler
3.3.1 servicey文件
cat /lib/systemd/system/kube-scheduler.service
[Unit]
Description=Kubernetes Scheduler
Documentation=https://github.com/GoogleCloudPlatform/kubernetes
After=kube-apiserver.service
Requires=kube-apiserver.service

[Service]
EnvironmentFile=/etc/kubernetes/scheduler
ExecStart=/usr/bin/kube-scheduler $KUBE_SCHEDULER_ARGS
Restart=on-failure
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target

3.3.2配置文件
cat /etc/kubernetes/scheduler
KUBE_SCHEDULER_ARGS="--master=http://192.168.122.144:8080 --logtostderr=false --log-dir=/var/log/kubernetes --v=2"


3.4在node节点安装 kubelet

3.4.1 service文件
cat /lib/systemd/system/kubelet.service
[Unit]
Description=Kubernetes Kubelet Server
Documentation=https://github.com/GoogleCloudPlatform/kubernetes
After=docker.service
Requires=docker.service

[Service]
WorkingDirectory=/var/lib/kubelet
EnvironmentFile=/etc/kubernetes/kubelet
ExecStart=/usr/bin/kubelet $KUBELET_ARGS
Restart=on-failure

[Install]
WantedBy=multi-user.target

3.4.2配置文件
cat /etc/kubernetes/kubelet
KUBELET_ARGS="--api-servers=http://192.168.122.144:8080 --hostname-override=192.168.122.144 --logtostderr=false --log-dir=/var/log/kubernetes --v=2"

说明:  --hostname-override=192.168.122.144 指当前node节点的名称

启动相关服务
systemctl daemon-reload
systemctl enable kube-apiserver
systemctl enable kube-controller-manager
systemctl enable kube-scheduler


3.5在node节点安装kube-proxy

3.5.1 service文件
cat /lib/systemd/system/kube-proxy.service
[Unit]
Description=Kubernetes Kube-Proxy Server
Documentation=https://github.com/GoogleCloudPlatform/kubernetes
After=network.target
Requires=network.target
[Service]
EnvironmentFile=/etc/kubernetes/proxy
ExecStart=/usr/bin/kube-proxy $KUBE_PROXY_ARGS
Restart=on-failure
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target
3.5.2 配置文件
cat /etc/kubernetes/proxy
KUBE_PROXY_ARGS="--master=http://192.168.122.144:8080 --logtostderr=false --log-dir=/var/log/kubernetes --v=2"

启动node节点中的服务
systemctl daemon-reload
systemctl enable kubelet
systemctl start kubelet
systemctl enable kube-proxy
systemctl start kube-proxy


3.6 网络配置 (flanneld)

3.6.1 service文件
cat /lib/systemd/system/flanneld.service
[Unit]
Description=flanneld overlay address etcd agent
After=network.target
Before=docker.service

[Service]
Type=notify
EnvironmentFile=/etc/sysconfig/flannel
ExecStart=/usr/bin/flanneld --etcd-endpoints=${FLANNEL_ETCD} ${FLANNEL_OPTIONS}

[Install]
RequiredBy=docker.service
WantedBy=multi-user.target

3.6.2配置文件
cat /etc/sysconfig/flannel
FLANNEL_ETCD="http://192.168.122.144:4001"
FLANNEL_ETCD_KEY="/coreos.com/network"
FLANNEL_OPTIONS="--iface=ens33"

说明 FLANNEL_OPTIONS="--iface=ens33" 指定网卡

3.6.3 配置docker启动参数

执行 mk-docker-opts.sh -i  会生成两个文件
查看文件(这两个文件重起后会消失,因此可以把该命令设置为开机启动)
cat /run/docker_opts.env
DOCKER_OPT_BIP="--bip=10.1.78.1/24"
DOCKER_OPT_IPMASQ="--ip-masq=true"
DOCKER_OPT_MTU="--mtu=1472"

cat /run/flannel/subnet.env
FLANNEL_NETWORK=10.1.0.0/16
FLANNEL_SUBNET=10.1.78.1/24
FLANNEL_MTU=1472
FLANNEL_IPMASQ=false

修改docker.service
cat /lib/systemd/system/docker.service
修改Service下的配置,以下两行
EnvironmentFile=/run/docker_opts.env
ExecStart=/usr/bin/dockerd ${DOCKER_OPT_BIP} ${DOCKER_OPT_IPMASQ} ${DOCKER_OPT_MTU} -H fd:// --containerd=/run/containerd/containerd.sock

启动flanneld
systemctl daemon-reload
systemctl enable flanneld
systemctl start flanneld

重新启动docker
systemctl restart docker

3.7 Dns设置
待整理kubedns或skydns


3.8日志查看
容器控制台输出日志都在node节点/var/logs/container里
使用elk或efk可以通过监控此文件夹,进行日志收集。

3.9 kubenets中的查关概念

原文地址:https://www.cnblogs.com/liuxm2017/p/11339743.html