mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-25 12:43:23 +00:00
Add local scripts, simplify kubecfg.sh
This commit is contained in:
parent
e35dfedd79
commit
fea7b61b81
@ -18,6 +18,6 @@
|
||||
# You can override the default provider by exporting the KUBERNETES_PROVIDER
|
||||
# variable in your bashrc
|
||||
#
|
||||
# The valid values: 'gce', 'azure' and 'vagrant'
|
||||
# The valid values: 'gce', 'azure', 'vagrant', 'local'
|
||||
|
||||
KUBERNETES_PROVIDER=${KUBERNETES_PROVIDER:-gce}
|
||||
|
@ -27,15 +27,4 @@ fi
|
||||
|
||||
detect-master > /dev/null
|
||||
|
||||
# detect-master returns this if there is no master found.
|
||||
if [ "$KUBE_MASTER_IP" == "external-ip" ]; then
|
||||
KUBE_MASTER_IP=""
|
||||
fi
|
||||
|
||||
if [ "$KUBERNETES_MASTER" == "" ]; then
|
||||
if [ "${KUBE_MASTER_IP}" != "" ]; then
|
||||
$CLOUDCFG -h https://${KUBE_MASTER_IP} $@
|
||||
exit $?
|
||||
fi
|
||||
fi
|
||||
$CLOUDCFG $@
|
||||
|
29
cluster/local/config-default.sh
Normal file
29
cluster/local/config-default.sh
Normal file
@ -0,0 +1,29 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright 2014 Google Inc. All rights reserved.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
## Contains configuration values for interacting with the Vagrant cluster
|
||||
|
||||
# NUMBER OF MINIONS IN THE CLUSTER
|
||||
NUM_MINIONS=1
|
||||
|
||||
# IP LOCATIONS FOR INTERACTING WITH THE MASTER
|
||||
export KUBE_MASTER_IP="127.0.0.1"
|
||||
export KUBERNETES_MASTER="http://127.0.0.1:8080"
|
||||
|
||||
# IP LOCATIONS FOR INTERACTING WITH THE MINIONS
|
||||
for (( i=0; i <${NUM_MINIONS}; i++)) do
|
||||
KUBE_MINION_IP_ADDRESSES[$i]="127.0.0.1"
|
||||
done
|
69
cluster/local/util.sh
Normal file
69
cluster/local/util.sh
Normal file
@ -0,0 +1,69 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright 2014 Google Inc. All rights reserved.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
# A library of helper functions that each provider hosting Kubernetes must implement to use cluster/kube-*.sh scripts.
|
||||
|
||||
source $(dirname ${BASH_SOURCE})/${KUBE_CONFIG_FILE-"config-default.sh"}
|
||||
|
||||
function detect-master () {
|
||||
echo "KUBE_MASTER_IP: $KUBE_MASTER_IP"
|
||||
echo "KUBE_MASTER: $KUBE_MASTER"
|
||||
}
|
||||
|
||||
# Get minion IP addresses and store in KUBE_MINION_IP_ADDRESSES[]
|
||||
function detect-minions {
|
||||
echo "Minions already detected"
|
||||
}
|
||||
|
||||
# Verify prereqs on host machine
|
||||
function verify-prereqs {
|
||||
for x in go; do
|
||||
if [ "$(which $x)" == "" ]; then
|
||||
echo "Can't find $x in PATH, please fix and retry."
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
# Instantiate a kubernetes cluster
|
||||
function kube-up {
|
||||
echo "Not applicable"
|
||||
}
|
||||
|
||||
# Delete a kubernetes cluster
|
||||
function kube-down {
|
||||
echo "Not applicable"
|
||||
}
|
||||
|
||||
# Update a kubernetes cluster with latest source
|
||||
function kube-push {
|
||||
echo "Not applicable"
|
||||
}
|
||||
|
||||
# Execute prior to running tests to build a release if required for env
|
||||
function test-build-release {
|
||||
echo "Not applicable"
|
||||
}
|
||||
|
||||
# Execute prior to running tests to initialize required structure
|
||||
function test-setup {
|
||||
echo "Not applicable"
|
||||
}
|
||||
|
||||
# Execute after running tests to perform any required clean-up
|
||||
function test-teardown {
|
||||
echo "Not applicable"
|
||||
}
|
@ -9,4 +9,54 @@ hack/local-up-cluster.sh
|
||||
|
||||
This will build and start a lightweight local cluster, consisting of a master and a single minion. Type Control-C to shut it down.
|
||||
|
||||
If you are running both a remote kubernetes cluster and the local cluster, you can determine which you talk to using the ```KUBERNETES_MASTER``` environment variable.
|
||||
You can use the cluster/kubecfg.sh script to interact with the local cluster.
|
||||
|
||||
```
|
||||
cd kubernetes
|
||||
modify cluster/kube-env.sh:
|
||||
KUBERNETES_PROVIDER="local"
|
||||
|
||||
cluster/kubecfg.sh => interact with the local cluster
|
||||
```
|
||||
|
||||
### Running a container
|
||||
|
||||
Your cluster is running, and you want to start running containers!
|
||||
|
||||
You can now use any of the cluster/kubecfg.sh commands to interact with your local setup.
|
||||
```
|
||||
cluster/kubecfg.sh list /pods
|
||||
cluster/kubecfg.sh list /services
|
||||
cluster/kubecfg.sh list /replicationControllers
|
||||
cluster/kubecfg.sh -p 8080:80 run dockerfile/nginx 1 myNginx
|
||||
|
||||
|
||||
## begin wait for provision to complete, you can monitor the docker pull by opening a new terminal
|
||||
sudo docker images
|
||||
## you should see it pulling the dockerfile/nginx image, once the above command returns it
|
||||
sudo docker ps
|
||||
## you should see your container running!
|
||||
exit
|
||||
## end wait
|
||||
|
||||
## introspect kubernetes!
|
||||
cluster/kubecfg.sh list /pods
|
||||
cluster/kubecfg.sh list /services
|
||||
cluster/kubecfg.sh list /replicationControllers
|
||||
```
|
||||
|
||||
Congratulations!
|
||||
|
||||
### Troubleshooting
|
||||
|
||||
#### I cannot create a replication controller with replica size greater than 1! What gives?
|
||||
|
||||
You are running a single minion setup. This has the limitation of only supporting a single replica of a given pod. If you are interested in running with larger replica sizes, we encourage you to try the local vagrant setup or one of the cloud providers.
|
||||
|
||||
#### I changed Kubernetes code, how do I run it?
|
||||
|
||||
```
|
||||
cd kubernetes
|
||||
hack/build-go.sh
|
||||
hack/local-up-cluster.sh
|
||||
```
|
Loading…
Reference in New Issue
Block a user