kernelsky 发表于 2018-9-16 06:39:02

kubernetes 1.8 安装脚本之Node-BravePro

#!/bin/bash  
#********************************************************************
  
#Author:      bravewang
  
#QQ:          6142553
  
##blog:       http://brave666.blog.51cto.com/
  
#Description: Kubernetes Master install
  
#Date:      2017-11-14
  
#********************************************************************
  
export host1=192.168.2.11
  
export host2=192.168.2.12
  
export host3=192.168.2.13
  
export host4=192.168.2.14
  
export host5=192.168.2.15
  
export zhuji="$host4 $host5 "
  

  
catconfig
  
###
  
# kubernetes system config
  
#
  
# The following values are used to configure various aspects of all
  
# kubernetes services, including
  
#
  
#   kube-apiserver.service
  
#   kube-controller-manager.service
  
#   kube-scheduler.service
  
#   kubelet.service
  
#   kube-proxy.service
  
# logging to stderr means we get it in the systemd journal
  
KUBE_LOGTOSTDERR="--logtostderr=true"
  

  
# journal message level, 0 is debug
  
KUBE_LOG_LEVEL="--v=2"
  

  
# Should this cluster be allowed to run privileged docker containers
  
KUBE_ALLOW_PRIV="--allow-privileged=true"
  

  
# How the controller-manager, scheduler, and proxy find the apiserver
  
# KUBE_MASTER="--master=http://127.0.0.1:8080"
  
EOF
  

  
catnginx.conf
  
error_log stderr notice;
  

  
worker_processes auto;
  
events {
  
multi_accept on;
  
use epoll;
  
worker_connections 1024;
  
}
  

  
stream {
  
    upstream kube_apiserver {
  
      least_conn;
  
      server $host1:6443;
  
      server $host2:6443;
  
      server $host3:6443;
  
    }
  

  
    server {
  
      listen      0.0.0.0:6443;
  
      proxy_pass    kube_apiserver;
  
      proxy_timeout 10m;
  
      proxy_connect_timeout 1s;
  
    }
  
}
  
EOF
  
catnginx-proxy.service
  

  
Description=kubernetes apiserver docker wrapper
  
Wants=docker.socket
  
After=docker.service
  

  

  
User=root
  
PermissionsStartOnly=true
  
ExecStart=/usr/bin/docker run -p 127.0.0.1:6443:6443 \\
  
                              -v /etc/nginx:/etc/nginx \\
  
                              --name nginx-proxy \\
  
                              --network=host \\
  
                              --restart=on-failure:5 \\
  
                              --memory=512M \\
  
                              nginx
  
ExecStartPre=-/usr/bin/docker rm -f nginx-proxy
  
ExecStop=/usr/bin/docker stop nginx-proxy
  
Restart=always
  
RestartSec=15s
  
TimeoutStartSec=30s
  

  

  
WantedBy=multi-user.target
  
EOF
  

  
peizhi()
  
{
  
catproxy${IP##*.}
  
###
  
# kubernetes proxy config
  
# default config should be adequate
  
# Add your own!
  
KUBE_PROXY_ARGS="--bind-address=$IP \\
  
               --hostname-override=docker${IP##*.} \\
  
               --kubeconfig=/etc/kubernetes/kube-proxy.kubeconfig \\
  
               --cluster-cidr=10.254.0.0/16"
  
EOF
  

  
catkubelet${IP##*.}
  
###
  
# kubernetes kubelet (minion) config
  

  
# The address for the info server to serve on (set to 0.0.0.0 or "" for all interfaces)
  
KUBELET_ADDRESS="--address=$IP"
  

  
# The port for the info server to serve on
  
# KUBELET_PORT="--port=10250"
  

  
# You may leave this blank to use the actual hostname
  
KUBELET_HOSTNAME="--hostname-override=docker${IP##*.}"
  

  
# location of the api-server
  
# KUBELET_API_SERVER=""
  

  
# Add your own!
  
KUBELET_ARGS="--cgroup-driver=cgroupfs \\
  
            --cluster-dns=10.254.0.2 \\
  
            --resolv-conf=/etc/resolv.conf \\
  
            --experimental-bootstrap-kubeconfig=/etc/kubernetes/bootstrap.kubeconfig \\
  
            --kubeconfig=/etc/kubernetes/kubelet.kubeconfig \\
  
            --fail-swap-on=false \\
  
            --cert-dir=/etc/kubernetes/ssl \\
  
            --cluster-domain=cluster.local. \\
  
            --hairpin-mode=promiscuous-bridge \\
  
            --serialize-image-pulls=false \\
  
            --pod-infra-container-image=gcr.io/google_containers/pause-amd64:3.0"
  
EOF
  

  
ssh root@$IP hostnamectl set-hostname docker${IP##*.}
  
ssh root@$IP mkdir /etc/kubernetes/ssl
  
scp ../Master/*.pem root@$IP:/etc/kubernetes/ssl
  
scp ../Master/*.kubeconfig ../Master/token.csv ../Master/audit-policy.yaml root@$IP:/etc/kubernetes
  
ssh root@$IP chown -R kube:kube /etc/kubernetes/ssl
  
ssh root@$IP mkdir -p /etc/etcd/ssl
  
scp ../etcd/*.pem root@$IP:/etc/etcd/ssl
  
ssh root@$IP chmod -R 644 /etc/etcd/ssl/*
  
ssh root@$IP chmod 755 /etc/etcd/ssl
  

  
scp kubelet${IP##*.} root@$IP:/etc/kubernetes/kubelet
  
scp proxy${IP##*.} root@$IP:/etc/kubernetes/proxy
  
scp config root@$IP:/etc/kubernetes/config
  
ssh root@$IP mkdir -p /etc/nginx/
  
scp nginx.conf root@$IP:/etc/nginx/nginx.conf
  
ssh root@$IP chmod +r /etc/nginx/nginx.conf
  
scp nginx-proxy.service root@$IP:/etc/systemd/system/nginx-proxy.service
  
ssh root@$IP systemctl daemon-reload
  
#ssh root@$IP systemctl start nginx-proxy
  
sleep 2
  
ssh root@$IP systemctl start nginx-proxy
  
sleep 2
  
ssh root@$IP systemctl enable nginx-proxy
  
sleep 2
  
ssh root@$IP systemctl start kubelet
  
sleep 2
  
ssh root@$IP systemctl enable kubelet
  
sleep 2
  
ssh root@$IP systemctl start kube-proxy
  
sleep 2
  
ssh root@$IP systemctl enable kube-proxy
  
sleep 2
  
ssh root@$IP systemctl restart kubelet
  

  
}
  

  
for IP in $zhuji ;do
  
peizhi
  
done


页: [1]
查看完整版本: kubernetes 1.8 安装脚本之Node-BravePro