kubernetes1.12二进制文件安装流程

系统配置过程参加我的kubernetes安装文档,下面详解安装流程.。

一 Master安装

Master上需要安装etcd、kube-apiserver、kube-controller-manager、kube-scheduler

1 etcd服务

etcd下载地址

1.1 安装etcd

将etcd和etcdctl文件复制到/usr/bin目录

cp etcd etcdctl /usr/bin/

添加环境变量

vi /root/.bash_profile
source /root/.bash_profile

1.2 设置systemd服务文件

创建etcd工作目录

mkdir -p /app/etcd/data
mkdir -p /app/etcd/work

创建服务文件

vi /usr/lib/systemd/system/etcd.service
[Unit]
Description=Etcd Server
After=network.target

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

[Install]
WantedBy=multi-user.target

编辑etcd配置文件

mkdir -p /etc/etcd/
vi /etc/etcd/etcd.conf

ETCD_NAME=k8setcd
ETCD_DATA_DIR="/app/etcd/data/k8setcd.etcd"
ETCD_LISTEN_CLIENT_URLS="http://192.168.200.221:2379,http://127.0.0.1:2379"
ETCD_ADVERTISE_CLIENT_URLS="http://127.0.0.1:2379"

1.3 启动etcd服务

systemctl daemon-reload
systemctl enable etcd.service
systemctl start etcd.service

1.4 验证etcd服务

etcdctl endpoint health

这里写图片描述

2 kube-apiserver服务

2.1 复制kubernetes相关二进制文件

将kube-apiserver、kube-controller-manager和kube-scheduler等文件复制到/usr/bin目录下

2.2 设置apiserver服务文件

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

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

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

[Install]
WantedBy=multi-user.target

编辑配置文件

mkdir -p /etc/kubernetes
vi /etc/kubernetes/apiserver

KUBE_API_ARGS="--storage-backend=etcd3 --etcd-servers=http://127.0.0.1:2379 --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=/app/kubernets/log --v=2"

3 kube-controller-manager服务

3.1 设置kube-controller-manager服务文件

vi /usr/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

编辑kube-controller-manager配置文件

vi /etc/kubernetes/controller-manager
KUBE_CONTROLLER_MANAGER_ARGS="--master=http://192.168.200.221:8080 --logtostderr=true --log-dir=/app/kubernets/log --v=2"

4 kube-scheduler服务

4.1 设置kube-scheduler服务文件

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

[Unit]
Description=Kubernetes Controller Manager
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

编辑kube-scheduler配置文件

vi /etc/kubernetes/scheduler
KUBE_SCHEDULER_ARGS="--master=http://192.168.200.221:8080 --logtostderr=false --log-dir=/app/kubernets/log --v=2"

4.2 启动服务

systemctl daemon-reload
systemctl enable kube-apiserver.service
systemctl start kube-apiserver.service
systemctl enable kube-controller-manager.service
systemctl start kube-controller-manager.service
systemctl enable kube-scheduler.service
systemctl start kube-scheduler.service

可以通过

systemctl status kube-apiserver.service 或者 journalctl -xe

查看服务启动状态

二 node安装

1 kubelet服务

1.1 设置kubelet服务

vi /usr/lib/systemd/system/kubelet.service

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

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

[Install]
WantedBy=multi-user.target

1.2 配置文件

KUBELET_ARGS="--kubeconfig=/etc/kubernetes/kubelet.kubeconfig --hostname-override=192.168.200.223 --logtostderr=false --log-dir=/app/kubernets/log --v=2"

1.3 kubelet.kubeconfig

apiVersion: v1
kind: Config
clusters:
  - cluster:
      server: http://192.168.200.221:8080
    name: local
contexts:
  - context:
      cluster: local
    name: local
current-context: local

2 kube-proxy服务

2.1 内核模块加载

cat > /etc/sysconfig/modules/ipvs.modules <#!/bin/bash
ipvs_modules="ip_vs ip_vs_lc ip_vs_wlc ip_vs_rr ip_vs_wrr ip_vs_lblc ip_vs_lblcr ip_vs_dh ip_vs_sh ip_vs_fo ip_vs_nq ip_vs_sed ip_vs_ftp nf_conntrack_ipv4"
for kernel_module in \${ipvs_modules}; do
    /sbin/modinfo -F filename \${kernel_module} > /dev/null 2>&1
    if [ $? -eq 0 ]; then
        /sbin/modprobe \${kernel_module}
    fi
done
EOF
chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep ip_vs

2.2 设置kubelet服务

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

[Unit]
Description=Kubernetes Kube-Proxy Server
Documentation=https://github.com/GoogleCloudPlatform/kubernetes
After=network.service
Requires=network.service

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

[Install]
WantedBy=multi-user.target

2.3 配置文件

vi

KUBE_PROXY_ARGS="--master=http://192.168.200.221:8080 \
                 --masquerade-all \
                 --feature-gates=SupportIPVSProxyMode=true \
                 --proxy-mode=ipvs \
                 --ipvs-min-sync-period=5s \
                 --ipvs-sync-period=5s \
                 --ipvs-scheduler=rr \
                 --cluster-cidr=169.169.0.0/16"

2.4 启动服务

systemctl daemon-reload
systemctl enable kubelet.service
systemctl start kubelet.service
systemctl enable kube-proxy.service
systemctl start kube-proxy.service

可以通过

systemctl status kube-proxy.service 或者 journalctl -xe

查询服务启动状态

你可能感兴趣的:(k8s)