Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
H
helm3
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
go
helm3
Commits
6751343e
Commit
6751343e
authored
May 06, 2016
by
Adam Reese
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #644 from adamreese/fix/local-cluster
fix(local-cluster): check to see if kubelet is running
parents
fb8dd392
a6d675db
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
41 additions
and
34 deletions
+41
-34
local-cluster.sh
scripts/local-cluster.sh
+41
-34
No files found.
scripts/local-cluster.sh
View file @
6751343e
...
...
@@ -30,6 +30,18 @@ command_exists() {
hash
"
${
1
}
"
2>/dev/null
}
# fetch url using wget or curl and print to stdout
fetch_url
()
{
local
url
=
"
$1
"
if
command_exists wget
;
then
curl
-sSL
"
$url
"
elif
command_exists curl
;
then
wget
-qO-
"
$url
"
else
error_exit
"Couldn't find curl or wget. Bailing out."
fi
}
# Program Functions ------------------------------------------------------------
# Check host platform and docker host
...
...
@@ -78,28 +90,30 @@ verify_prereqs() {
command_exists docker
||
error_exit
"You need docker"
if
!
docker info
>
/dev/null 2>&1
;
then
if
!
docker info
>
/dev/null 2>&1
;
then
error_exit
"Can't connect to 'docker' daemon."
fi
if
docker inspect kubelet
>
/dev/null 2>&1
;
then
error_exit
"Kubernetes is already running"
fi
$KUBECTL
version
--client
>
/dev/null
||
download_kubectl
}
# Get the latest stable release tag
get_latest_version_number
()
{
local
-r
latest_url
=
"https://storage.googleapis.com/kubernetes-release/release/stable.txt"
if
command_exists wget
;
then
wget
-qO-
${
latest_url
}
elif
command_exists curl
;
then
curl
-Ss
${
latest_url
}
else
error_exit
"Couldn't find curl or wget. Bailing out."
local
channel
=
"stable"
if
[[
-n
"
${
ALPHA
:-}
"
]]
;
then
channel
=
"latest"
fi
local
latest_url
=
"https://storage.googleapis.com/kubernetes-release/release/
${
channel
}
.txt"
fetch_url
"
$latest_url
"
}
# Detect ip address od docker host
detect_docker_host_ip
()
{
if
[
-n
"
${
DOCKER_HOST
:-}
"
]
;
then
if
[
[
-n
"
${
DOCKER_HOST
:-}
"
]
]
;
then
awk
-F
'[/:]'
'{print $4}'
<<<
"
$DOCKER_HOST
"
else
ifconfig docker0
\
...
...
@@ -151,27 +165,33 @@ start_kubernetes() {
/hyperkube kubelet
\
--containerized
\
--hostname-override
=
"127.0.0.1"
\
--api-servers
=
http://localhost:
8080
\
--api-servers
=
http://localhost:
${
KUBE_PORT
}
\
--config
=
/etc/kubernetes/manifests
\
--allow-privileged
=
true
\
${
dns_args
}
\
--v
=
${
LOG_LEVEL
}
>
/dev/null
until
$KUBECTL
cluster-info &> /dev/null
;
do
sleep
1
done
# Create kube-system namespace in kubernetes
$KUBECTL
create namespace kube-system
>
/dev/null
# We expect to have at least 3 running pods - etcd, master and kube-proxy.
local
attempt
=
1
while
((
$(
$KUBECTL
get pod
s
--no-headers
2>/dev/null |
grep
-c
"Running"
)
< 3
))
;
do
while
((
$(
KUBECTL get pods
--all-namespace
s
--no-headers
2>/dev/null |
grep
-c
"Running"
)
< 3
))
;
do
echo
-n
"."
sleep
$((
attempt++
))
done
echo
local
end_time
=
$(
date
+%s
)
echo
"Started master components in
$((
end_time
-
start_time
))
seconds."
echo
"Started master components in
$(($(
date
+%s
)
-
start_time
))
seconds."
}
# Open kubernetes master api port.
setup_firewall
()
{
[[
-n
"
${
DOCKER_MACHINE_NAME
}
"
]]
||
return
[[
-n
"
${
DOCKER_MACHINE_NAME
:-
}
"
]]
||
return
echo
"Adding iptables hackery for docker-machine..."
...
...
@@ -184,13 +204,6 @@ setup_firewall() {
fi
}
# Create kube-system namespace in kubernetes
create_kube_system_namespace
()
{
echo
"Creating kube-system namespace..."
$KUBECTL
create
-f
./scripts/cluster/kube-system.yaml
>
/dev/null
}
# Activate skydns in kubernetes and wait for pods to be ready.
create_kube_dns
()
{
[[
"
${
ENABLE_CLUSTER_DNS
}
"
=
true
]]
||
return
...
...
@@ -209,8 +222,7 @@ create_kube_dns() {
sleep
$((
attempt++
))
done
echo
local
end_time
=
$(
date
+%s
)
echo
"Started DNS in
$((
end_time
-
start_time
))
seconds."
echo
"Started DNS in
$(($(
date
+%s
)
-
start_time
))
seconds."
}
# Generate kubeconfig data for the created cluster.
...
...
@@ -231,17 +243,13 @@ generate_kubeconfig() {
download_kubectl
()
{
echo
"Downloading kubectl binary..."
local
output
=
"/usr/local/bin/kubectl"
kubectl_url
=
"https://storage.googleapis.com/kubernetes-release/release/
${
KUBE_VERSION
}
/bin/
${
host_os
}
/
${
host_arch
}
/kubectl"
if
command_exists wget
;
then
wget
-O
./bin/kubectl
"
${
kubectl_url
}
"
elif
command_exists curl
;
then
curl
-sSOL
./bin/kubectl
"
${
kubectl_url
}
"
else
error_exit
"Couldn't find curl or wget. Bailing out."
fi
chmod
a+x ./bin/kubectl
fetch_url
"
${
kubectl_url
}
"
>
"
${
output
}
"
chmod
a+x
"
${
output
}
"
KUBECTL
=
./bin/kubectl
KUBECTL
=
"
${
output
}
"
}
# Clean volumes that are left by kubelet
...
...
@@ -297,9 +305,8 @@ kube_up() {
clean_volumes
setup_firewall
start_kubernetes
generate_kubeconfig
create_kube_system_namespace
start_kubernetes
create_kube_dns
$KUBECTL
cluster-info
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment