mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-27 13:37:30 +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
|
# You can override the default provider by exporting the KUBERNETES_PROVIDER
|
||||||
# variable in your bashrc
|
# variable in your bashrc
|
||||||
#
|
#
|
||||||
# The valid values: 'gce', 'azure' and 'vagrant'
|
# The valid values: 'gce', 'azure', 'vagrant', 'local'
|
||||||
|
|
||||||
KUBERNETES_PROVIDER=${KUBERNETES_PROVIDER:-gce}
|
KUBERNETES_PROVIDER=${KUBERNETES_PROVIDER:-gce}
|
||||||
|
@ -27,15 +27,4 @@ fi
|
|||||||
|
|
||||||
detect-master > /dev/null
|
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 $@
|
$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.
|
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