mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-29 22:46:12 +00:00
Merge pull request #6137 from GoogleCloudPlatform/revert-4442-docker_etcd
Revert "Running etcd 2.0.5 in a pod on master"
This commit is contained in:
commit
8a7a127352
6
cluster/saltbase/salt/etcd/default
Normal file
6
cluster/saltbase/salt/etcd/default
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
{% set etcd_servers = "127.0.0.1" -%}
|
||||||
|
{% if grains.etcd_servers is defined -%}
|
||||||
|
{% set etcd_servers = grains.etcd_servers -%}
|
||||||
|
{% endif -%}
|
||||||
|
|
||||||
|
DAEMON_ARGS="-addr {{etcd_servers}}:4001 -bind-addr {{etcd_servers}}:4001 -data-dir /var/etcd/data"
|
4
cluster/saltbase/salt/etcd/etcd.conf
Normal file
4
cluster/saltbase/salt/etcd/etcd.conf
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
bind_addr = "0.0.0.0"
|
||||||
|
peer_bind_addr = "0.0.0.0"
|
||||||
|
data_dir = "/var/etcd/data"
|
||||||
|
max_retry_attempts = 60
|
@ -1,54 +0,0 @@
|
|||||||
{% set ipv4_addr = salt['grains.get']('fqdn_ip4')[0] -%}
|
|
||||||
|
|
||||||
{
|
|
||||||
"apiVersion": "v1beta3",
|
|
||||||
"kind": "Pod",
|
|
||||||
"metadata": {"name":"etcd-server"},
|
|
||||||
"spec":{
|
|
||||||
"hostNetwork": true,
|
|
||||||
"containers":[
|
|
||||||
{
|
|
||||||
"name": "etcd-container",
|
|
||||||
"image": "kubernetes/etcd:2.0.5.1",
|
|
||||||
"command": [
|
|
||||||
"/usr/local/bin/etcd",
|
|
||||||
"--addr",
|
|
||||||
"{{ipv4_addr}}:4001",
|
|
||||||
"--bind-addr",
|
|
||||||
"0.0.0.0:4001",
|
|
||||||
"--data-dir",
|
|
||||||
"/var/etcd/data",
|
|
||||||
"--initial-advertise-peer-urls",
|
|
||||||
"http://kubernetes-master:2380",
|
|
||||||
"--name",
|
|
||||||
"kubernetes-master",
|
|
||||||
"--initial-cluster",
|
|
||||||
"kubernetes-master=http://kubernetes-master:2380",
|
|
||||||
">> /var/log/etcd.log"
|
|
||||||
],
|
|
||||||
"ports":[
|
|
||||||
{ "name": "serverport",
|
|
||||||
"containerPort": 2380,
|
|
||||||
"hostPort": 2380},{
|
|
||||||
"name": "clientport",
|
|
||||||
"containerPort": 4001,
|
|
||||||
"hostPort": 4001}
|
|
||||||
],
|
|
||||||
"volumeMounts": [
|
|
||||||
{ "name": "varetcd",
|
|
||||||
"mountPath": "/var/etcd",
|
|
||||||
"readOnly": false},
|
|
||||||
{ "name": "logetcd",
|
|
||||||
"mountPath": "/var/log/etcd.log",
|
|
||||||
"readOnly": false}
|
|
||||||
]
|
|
||||||
} ],
|
|
||||||
"volumes":[
|
|
||||||
{ "name": "varetcd",
|
|
||||||
"hostPath": {
|
|
||||||
"path": "/mnt/master-pd/var/etcd"}
|
|
||||||
},
|
|
||||||
{ "name": "logetcd",
|
|
||||||
"hostPath": {
|
|
||||||
"path": "/var/log/etcd.log"}}]
|
|
||||||
}}
|
|
13
cluster/saltbase/salt/etcd/etcd.service
Normal file
13
cluster/saltbase/salt/etcd/etcd.service
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=etcd
|
||||||
|
Documentation=https://github.com/coreos/etcd
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
EnvironmentFile=/etc/default/etcd
|
||||||
|
ExecStart=/usr/local/bin/etcd $DAEMON_ARGS
|
||||||
|
Restart=always
|
||||||
|
RestartSec=30
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
@ -1,49 +1,140 @@
|
|||||||
delete_etc_etcd_dir:
|
# We are caching the etcd tar file in GCS for reliability and speed. To
|
||||||
file.absent:
|
# update this to a new version, do the following:
|
||||||
- name: /etc/etcd
|
# 2. Download tar file:
|
||||||
|
# curl -LO https://github.com/coreos/etcd/releases/download/<ver>/etcd-<ver>-linux-amd64.tar.gz
|
||||||
|
# 3. Upload to GCS (the cache control makes :
|
||||||
|
# gsutil cp <tar> gs://kubernetes-release/etcd/<tar>
|
||||||
|
# 4. Make it world readable:
|
||||||
|
# gsutil -m acl ch -R -g all:R gs://kubernetes-release/etcd/
|
||||||
|
# 5. Get a hash of the tar:
|
||||||
|
# shasum <tar>
|
||||||
|
# 6. Update this file with new tar version and new hash
|
||||||
|
|
||||||
delete_etcd_conf:
|
{% set etcd_version="v2.0.5" %}
|
||||||
file.absent:
|
{% set etcd_tar_url="https://storage.googleapis.com/kubernetes-release/etcd/etcd-%s-linux-amd64.tar.gz"
|
||||||
- name: /etc/etcd/etcd.conf
|
| format(etcd_version) %}
|
||||||
|
{% set etcd_tar_hash="sha1=34b185efa954327d6cdfe6be5b1eb5fcfb7c478c" %}
|
||||||
|
|
||||||
touch /var/log/etcd.log:
|
etcd-tar:
|
||||||
cmd.run:
|
archive:
|
||||||
- creates: /var/log/etcd.log
|
- extracted
|
||||||
|
- user: root
|
||||||
/var/etcd:
|
- name: /usr/local/src
|
||||||
|
- source: {{ etcd_tar_url }}
|
||||||
|
- source_hash: {{ etcd_tar_hash }}
|
||||||
|
- archive_format: tar
|
||||||
|
- if_missing: /usr/local/src/etcd-{{ etcd_version }}-linux-amd64
|
||||||
|
{% if grains['saltversioninfo'] <= (2014, 7, 0, 0) %}
|
||||||
|
- tar_options: xz
|
||||||
|
{% endif %}
|
||||||
file.directory:
|
file.directory:
|
||||||
|
- name: /usr/local/src/etcd-{{ etcd_version }}-linux-amd64
|
||||||
- user: root
|
- user: root
|
||||||
- group: root
|
- group: root
|
||||||
- dir_mode: 700
|
- watch:
|
||||||
|
- archive: etcd-tar
|
||||||
- recurse:
|
- recurse:
|
||||||
- user
|
- user
|
||||||
- group
|
- group
|
||||||
- mode
|
|
||||||
|
|
||||||
delete_etcd_default:
|
etcd-symlink:
|
||||||
file.absent:
|
file.symlink:
|
||||||
- name: /etc/default/etcd
|
- name: /usr/local/bin/etcd
|
||||||
|
- target: /usr/local/src/etcd-{{ etcd_version }}-linux-amd64/etcd
|
||||||
|
- force: true
|
||||||
|
- watch:
|
||||||
|
- archive: etcd-tar
|
||||||
|
|
||||||
delete_etcd_service_file:
|
etcdctl-symlink:
|
||||||
file.absent:
|
file.symlink:
|
||||||
- name: /usr/lib/systemd/system/etcd.service
|
- name: /usr/local/bin/etcdctl
|
||||||
|
- target: /usr/local/src/etcd-{{ etcd_version }}-linux-amd64/etcdctl
|
||||||
|
- force: true
|
||||||
|
- watch:
|
||||||
|
- archive: etcd-tar
|
||||||
|
|
||||||
delete_etcd_initd:
|
etcd:
|
||||||
file.absent:
|
group.present:
|
||||||
- name: /etc/init.d/etcd
|
- system: True
|
||||||
|
user.present:
|
||||||
|
- system: True
|
||||||
|
- gid_from_name: True
|
||||||
|
- shell: /sbin/nologin
|
||||||
|
- home: /var/etcd
|
||||||
|
|
||||||
/etc/kubernetes/manifests/etcd.manifest:
|
/etc/etcd:
|
||||||
|
file.directory:
|
||||||
|
- user: root
|
||||||
|
- group: root
|
||||||
|
- dir_mode: 755
|
||||||
|
|
||||||
|
/etc/etcd/etcd.conf:
|
||||||
file.managed:
|
file.managed:
|
||||||
- source: salt://etcd/etcd.manifest
|
- source: salt://etcd/etcd.conf
|
||||||
|
- user: root
|
||||||
|
- group: root
|
||||||
|
- mode: 644
|
||||||
|
|
||||||
|
/var/etcd:
|
||||||
|
file.directory:
|
||||||
|
- user: etcd
|
||||||
|
- group: etcd
|
||||||
|
- dir_mode: 700
|
||||||
|
- require:
|
||||||
|
- user: etcd
|
||||||
|
- group: etcd
|
||||||
|
|
||||||
|
/var/etcd/data:
|
||||||
|
file.directory:
|
||||||
|
- user: etcd
|
||||||
|
- group: etcd
|
||||||
|
- dir_mode: 700
|
||||||
|
- require:
|
||||||
|
- user: etcd
|
||||||
|
- group: etcd
|
||||||
|
|
||||||
|
{% if grains['os_family'] == 'RedHat' %}
|
||||||
|
|
||||||
|
/etc/default/etcd:
|
||||||
|
file.managed:
|
||||||
|
- source: salt://etcd/default
|
||||||
- template: jinja
|
- template: jinja
|
||||||
- user: root
|
- user: root
|
||||||
- group: root
|
- group: root
|
||||||
- mode: 644
|
- mode: 644
|
||||||
- makedirs: true
|
|
||||||
- dir_mode: 755
|
|
||||||
|
|
||||||
#stop legacy etcd_service
|
/usr/lib/systemd/system/etcd.service:
|
||||||
stop_etcd-service:
|
file.managed:
|
||||||
service.dead:
|
- source: salt://etcd/etcd.service
|
||||||
|
- user: root
|
||||||
|
- group: root
|
||||||
|
|
||||||
|
{% else %}
|
||||||
|
|
||||||
|
/etc/init.d/etcd:
|
||||||
|
file.managed:
|
||||||
|
- source: salt://etcd/initd
|
||||||
|
- user: root
|
||||||
|
- group: root
|
||||||
|
- mode: 755
|
||||||
|
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
etcd-service:
|
||||||
|
service.running:
|
||||||
- name: etcd
|
- name: etcd
|
||||||
- enable: None
|
- enable: True
|
||||||
|
- watch:
|
||||||
|
- file: /etc/etcd/etcd.conf
|
||||||
|
{% if grains['os_family'] == 'RedHat' %}
|
||||||
|
- file: /usr/lib/systemd/system/etcd.service
|
||||||
|
- file: /etc/default/etcd
|
||||||
|
{% endif %}
|
||||||
|
- file: etcd-tar
|
||||||
|
- file: etcd-symlink
|
||||||
|
- require:
|
||||||
|
- file: /var/etcd
|
||||||
|
- file: /var/etcd/data
|
||||||
|
- user: etcd
|
||||||
|
- group: etcd
|
||||||
|
|
||||||
|
120
cluster/saltbase/salt/etcd/initd
Executable file
120
cluster/saltbase/salt/etcd/initd
Executable file
@ -0,0 +1,120 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
### BEGIN INIT INFO
|
||||||
|
# Provides: etcd
|
||||||
|
# Required-Start: $local_fs $network $syslog
|
||||||
|
# Required-Stop:
|
||||||
|
# Default-Start: 2 3 4 5
|
||||||
|
# Default-Stop: 0 1 6
|
||||||
|
# Short-Description: The etcd key-value share configuration service.
|
||||||
|
# Description: This launches and controls the etcd daemon.
|
||||||
|
### END INIT INFO
|
||||||
|
|
||||||
|
|
||||||
|
# PATH should only include /usr/* if it runs after the mountnfs.sh script
|
||||||
|
PATH=/sbin:/usr/sbin:/bin:/usr/bin
|
||||||
|
DESC="The etcd key-value share configuration service"
|
||||||
|
NAME=etcd
|
||||||
|
DAEMON=/usr/local/bin/$NAME
|
||||||
|
# DAEMON_ARGS="-peer-addr $HOSTNAME:7001 -name $HOSTNAME"
|
||||||
|
host_ip=$(hostname -i)
|
||||||
|
DAEMON_ARGS="-addr ${host_ip}:4001 -bind-addr 0.0.0.0:4001 -data-dir /var/etcd/data -initial-advertise-peer-urls http://${HOSTNAME}:2380 -name ${HOSTNAME} -initial-cluster ${HOSTNAME}=http://${HOSTNAME}:2380"
|
||||||
|
DAEMON_LOG_FILE=/var/log/$NAME.log
|
||||||
|
PIDFILE=/var/run/$NAME.pid
|
||||||
|
SCRIPTNAME=/etc/init.d/$NAME
|
||||||
|
DAEMON_USER=etcd
|
||||||
|
|
||||||
|
# Exit if the package is not installed
|
||||||
|
[ -x "$DAEMON" ] || exit 0
|
||||||
|
|
||||||
|
# Read configuration variable file if it is present
|
||||||
|
[ -r /etc/default/$NAME ] && . /etc/default/$NAME
|
||||||
|
|
||||||
|
# Define LSB log_* functions.
|
||||||
|
# Depend on lsb-base (>= 3.2-14) to ensure that this file is present
|
||||||
|
# and status_of_proc is working.
|
||||||
|
. /lib/lsb/init-functions
|
||||||
|
|
||||||
|
#
|
||||||
|
# Function that starts the daemon/service
|
||||||
|
#
|
||||||
|
do_start()
|
||||||
|
{
|
||||||
|
# Return
|
||||||
|
# 0 if daemon has been started
|
||||||
|
# 1 if daemon was already running
|
||||||
|
# 2 if daemon could not be started
|
||||||
|
start-stop-daemon --start --quiet --background --no-close \
|
||||||
|
--make-pidfile --pidfile $PIDFILE \
|
||||||
|
--exec $DAEMON -c $DAEMON_USER --test > /dev/null \
|
||||||
|
|| return 1
|
||||||
|
start-stop-daemon --start --quiet --background --no-close \
|
||||||
|
--make-pidfile --pidfile $PIDFILE \
|
||||||
|
--exec $DAEMON -c $DAEMON_USER -- \
|
||||||
|
$DAEMON_ARGS >> $DAEMON_LOG_FILE 2>&1 \
|
||||||
|
|| return 2
|
||||||
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# Function that stops the daemon/service
|
||||||
|
#
|
||||||
|
do_stop()
|
||||||
|
{
|
||||||
|
# Return
|
||||||
|
# 0 if daemon has been stopped
|
||||||
|
# 1 if daemon was already stopped
|
||||||
|
# 2 if daemon could not be stopped
|
||||||
|
# other if a failure occurred
|
||||||
|
start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME
|
||||||
|
RETVAL="$?"
|
||||||
|
[ "$RETVAL" = 2 ] && return 2
|
||||||
|
# Many daemons don't delete their pidfiles when they exit.
|
||||||
|
rm -f $PIDFILE
|
||||||
|
return "$RETVAL"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
start)
|
||||||
|
log_daemon_msg "Starting $DESC" "$NAME"
|
||||||
|
do_start
|
||||||
|
case "$?" in
|
||||||
|
0|1) log_end_msg 0 || exit 0 ;;
|
||||||
|
2) log_end_msg 1 || exit 1 ;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
stop)
|
||||||
|
log_daemon_msg "Stopping $DESC" "$NAME"
|
||||||
|
do_stop
|
||||||
|
case "$?" in
|
||||||
|
0|1) log_end_msg 0 ;;
|
||||||
|
2) exit 1 ;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
status)
|
||||||
|
status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
|
||||||
|
;;
|
||||||
|
|
||||||
|
restart|force-reload)
|
||||||
|
log_daemon_msg "Restarting $DESC" "$NAME"
|
||||||
|
do_stop
|
||||||
|
case "$?" in
|
||||||
|
0|1)
|
||||||
|
do_start
|
||||||
|
case "$?" in
|
||||||
|
0) log_end_msg 0 ;;
|
||||||
|
1) log_end_msg 1 ;; # Old process is still running
|
||||||
|
*) log_end_msg 1 ;; # Failed to start
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
# Failed to stop
|
||||||
|
log_end_msg 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
|
||||||
|
exit 3
|
||||||
|
;;
|
||||||
|
esac
|
9
cluster/saltbase/salt/monit/etcd
Normal file
9
cluster/saltbase/salt/monit/etcd
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
check process etcd with pidfile /var/run/etcd.pid
|
||||||
|
group etcd
|
||||||
|
start program = "/etc/init.d/etcd start"
|
||||||
|
stop program = "/etc/init.d/etcd stop"
|
||||||
|
if failed
|
||||||
|
port 4001
|
||||||
|
protocol http
|
||||||
|
request "/v2/keys/"
|
||||||
|
then restart
|
@ -4,6 +4,16 @@ monit:
|
|||||||
pkg:
|
pkg:
|
||||||
- installed
|
- installed
|
||||||
|
|
||||||
|
{% if "kubernetes-master" in grains.get('roles', []) %}
|
||||||
|
/etc/monit/conf.d/etcd:
|
||||||
|
file:
|
||||||
|
- managed
|
||||||
|
- source: salt://monit/etcd
|
||||||
|
- user: root
|
||||||
|
- group: root
|
||||||
|
- mode: 644
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
/etc/monit/conf.d/docker:
|
/etc/monit/conf.d/docker:
|
||||||
file:
|
file:
|
||||||
- managed
|
- managed
|
||||||
|
Loading…
Reference in New Issue
Block a user