mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-10 20:42:26 +00:00
Remove the old docker-multinode files that were built into the hyperkube image
This commit is contained in:
parent
dee81ed56a
commit
b814b62447
@ -38,33 +38,9 @@ RUN DEBIAN_FRONTEND=noninteractive apt-get update -y \
|
||||
|
||||
RUN cp /usr/bin/nsenter /nsenter
|
||||
|
||||
# Manifests for the docker guide
|
||||
COPY static-pods/master.json \
|
||||
static-pods/etcd.json \
|
||||
static-pods/addon-manager-singlenode.json \
|
||||
static-pods/kube-proxy.json \
|
||||
/etc/kubernetes/manifests/
|
||||
|
||||
# Manifests for the docker-multinode guide
|
||||
COPY static-pods/master-multi.json \
|
||||
static-pods/addon-manager-multinode.json \
|
||||
/etc/kubernetes/manifests-multi/
|
||||
|
||||
# Copy over all addons
|
||||
COPY addons /etc/kubernetes/addons
|
||||
|
||||
# Copy other required scripts for the setup
|
||||
COPY setup-files.sh make-ca-cert.sh copy-addons.sh /
|
||||
|
||||
# easy-rsa package required by make-ca-cert
|
||||
ADD https://storage.googleapis.com/kubernetes-release/easy-rsa/easy-rsa.tar.gz /root/kube/
|
||||
|
||||
# Copy the the cni-bin folder into /opt/cni/bin
|
||||
COPY cni-bin/bin /opt/cni/bin
|
||||
|
||||
# Copy overlay configuration to default directory
|
||||
COPY cni-conf /etc/cni/net.d
|
||||
|
||||
# Create symlinks for each hyperkube server
|
||||
# Also create symlinks to /usr/local/bin/ where the server image binaries live, so the hyperkube image may be
|
||||
# used instead of gcr.io/google_containers/kube-* without any modifications.
|
||||
|
@ -60,43 +60,15 @@ ifndef VERSION
|
||||
$(error VERSION is undefined)
|
||||
endif
|
||||
cp -r ./* ${TEMP_DIR}
|
||||
mkdir -p ${TEMP_DIR}/cni-bin ${TEMP_DIR}/addons ${TEMP_DIR}/addons/singlenode ${TEMP_DIR}/addons/multinode
|
||||
cp ../../saltbase/salt/generate-cert/make-ca-cert.sh ${TEMP_DIR}
|
||||
|
||||
# Singlenode addons
|
||||
cp ../../addons/dns/kubedns-controller.yaml.base ${TEMP_DIR}/addons/singlenode/kubedns-controller.yaml
|
||||
cp ../../addons/dns/kubedns-svc.yaml.base ${TEMP_DIR}/addons/singlenode/kubedns-svc.yaml
|
||||
cp ../../addons/dns/kubedns-sa.yaml ${TEMP_DIR}/addons/singlenode/kubedns-sa.yaml
|
||||
cp ../../addons/dns/kubedns-cm.yaml ${TEMP_DIR}/addons/singlenode/kubedns-cm.yaml
|
||||
cp ../../addons/dashboard/dashboard-controller.yaml ${TEMP_DIR}/addons/singlenode/
|
||||
cp ../../addons/dashboard/dashboard-service.yaml ${TEMP_DIR}/addons/singlenode/
|
||||
|
||||
# Multinode addons; all singlenode addons plus kube-proxy (and soon flannel)
|
||||
cp ${TEMP_DIR}/addons/singlenode/*.yaml ${TEMP_DIR}/addons/multinode/
|
||||
cp kube-proxy-ds.yaml ${TEMP_DIR}/addons/multinode/kube-proxy.yaml
|
||||
|
||||
cp ../../../_output/dockerized/bin/linux/${ARCH}/hyperkube ${TEMP_DIR}
|
||||
chmod a+rx ${TEMP_DIR}/hyperkube
|
||||
|
||||
cd ${TEMP_DIR} && sed -i.back "s|VERSION|${VERSION}|g" addons/singlenode/*.yaml addons/multinode/*.yaml static-pods/*.json
|
||||
cd ${TEMP_DIR} && sed -i.back "s|REGISTRY|${REGISTRY}|g" addons/singlenode/*.yaml addons/multinode/*.yaml static-pods/*.json
|
||||
cd ${TEMP_DIR} && sed -i.back "s|ARCH|${ARCH}|g" addons/singlenode/*.yaml addons/multinode/*.yaml static-pods/*.json
|
||||
cd ${TEMP_DIR} && sed -i.back "s|ARCH|${QEMUARCH}|g" Dockerfile
|
||||
cd ${TEMP_DIR} && sed -i.back "s|BASEIMAGE|${BASEIMAGE}|g" Dockerfile
|
||||
ifeq ($(CACHEBUST),1)
|
||||
cd ${TEMP_DIR} && sed -i.back "s|CACHEBUST|$(shell uuidgen)|g" Dockerfile
|
||||
endif
|
||||
cd ${TEMP_DIR} && sed -i.back "s|-amd64|-${ARCH}|g" addons/singlenode/*.yaml addons/multinode/*.yaml
|
||||
cd ${TEMP_DIR} && sed -i.back "s|__PILLAR__DNS__SERVER__|10.0.0.10|g" addons/singlenode/kubedns*.yaml addons/multinode/kubedns*.yaml
|
||||
cd ${TEMP_DIR} && sed -i.back "s|__PILLAR__DNS__DOMAIN__|cluster.local|g" addons/singlenode/kubedns*.yaml addons/multinode/kubedns*.yaml
|
||||
cd ${TEMP_DIR} && rm -f addons/singlenode/*.back addons/multinode/*.back static-pods/*.back
|
||||
|
||||
# Make scripts executable before they are copied into the Docker image. If we make them executable later, in another layer
|
||||
# they'll take up twice the space because the new executable binary differs from the old one, but everything is cached in layers.
|
||||
cd ${TEMP_DIR} && chmod a+rx \
|
||||
hyperkube \
|
||||
setup-files.sh \
|
||||
make-ca-cert.sh \
|
||||
copy-addons.sh
|
||||
|
||||
ifeq ($(ARCH),amd64)
|
||||
# When building "normally" for amd64, remove the whole line, it has no part in the amd64 image
|
||||
|
@ -1,10 +1,7 @@
|
||||
### hyperkube
|
||||
|
||||
`hyperkube` is an all-in-one binary for the Kubernetes server components
|
||||
Also, it's very easy to run this `hyperkube` setup dockerized.
|
||||
See https://github.com/kubernetes/kubernetes/blob/master/docs/devel/local-cluster/docker.md for up-to-date commands.
|
||||
|
||||
`hyperkube` is built for multiple architectures and _pushed automatically on every release._
|
||||
`hyperkube` is built for multiple architectures and _the image is pushed automatically on every release._
|
||||
|
||||
#### How to release by hand
|
||||
|
||||
|
@ -1,10 +0,0 @@
|
||||
{
|
||||
"name": "containernet",
|
||||
"type": "flannel",
|
||||
"delegate": {
|
||||
"bridge": "cni0",
|
||||
"mtu": 1450,
|
||||
"isDefaultGateway": true,
|
||||
"forceAddress": true
|
||||
}
|
||||
}
|
@ -1,3 +0,0 @@
|
||||
{
|
||||
"type": "loopback"
|
||||
}
|
@ -1,34 +0,0 @@
|
||||
#!/bin/bash
|
||||
# Copyright 2016 The Kubernetes Authors.
|
||||
#
|
||||
# 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.
|
||||
|
||||
# Now we're running in the sidecar container
|
||||
# /etc/kubernetes/addons holds the data in the hyperkube container
|
||||
# /srv/kubernetes is an emptyDir that maps to /etc/kubernetes in the addon-manager container
|
||||
# This way we're using the latest manifests from hyperkube without updating
|
||||
# kube-addon-manager which is used for other deployments too
|
||||
|
||||
# Inside /etc/kubernetes/addons, there are two directories: singlenode and multinode
|
||||
# If "singlenode" is passed to this script; those manifests are copied to the addon-manager and vice versa with "multinode"
|
||||
SUBDIRECTORY=$1
|
||||
|
||||
# While there is no data copied over to the emptyDir, try to copy it.
|
||||
while [[ -z $(ls /srv/kubernetes/addons) ]]; do
|
||||
cp -r /etc/kubernetes/addons/${SUBDIRECTORY}/* /srv/kubernetes/addons/
|
||||
done
|
||||
|
||||
# Then sleep forever
|
||||
while true; do
|
||||
sleep 3600;
|
||||
done
|
@ -1,51 +0,0 @@
|
||||
# Copyright 2016 The Kubernetes Authors.
|
||||
#
|
||||
# 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.
|
||||
|
||||
apiVersion: extensions/v1beta1
|
||||
kind: DaemonSet
|
||||
metadata:
|
||||
name: k8s-proxy-v1
|
||||
namespace: kube-system
|
||||
labels:
|
||||
k8s-app: k8s-proxy
|
||||
version: v1
|
||||
kubernetes.io/cluster-service: "true"
|
||||
spec:
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
k8s-app: k8s-proxy
|
||||
version: v1
|
||||
kubernetes.io/cluster-service: "true"
|
||||
spec:
|
||||
hostNetwork: true
|
||||
containers:
|
||||
- name: kube-proxy
|
||||
image: REGISTRY/hyperkube-ARCH:VERSION
|
||||
command:
|
||||
- /hyperkube
|
||||
- proxy
|
||||
- --kubeconfig=/var/lib/kubelet/kubeconfig/kubeconfig.yaml
|
||||
- --v=2
|
||||
- --resource-container=""
|
||||
securityContext:
|
||||
privileged: true
|
||||
volumeMounts:
|
||||
- name: kubeconfig
|
||||
mountPath: /var/lib/kubelet/kubeconfig
|
||||
readOnly: true
|
||||
volumes:
|
||||
- name: kubeconfig
|
||||
hostPath:
|
||||
path: /var/lib/kubelet/kubeconfig
|
@ -1,75 +0,0 @@
|
||||
#!/bin/bash
|
||||
# Copyright 2015 The Kubernetes Authors.
|
||||
#
|
||||
# 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.
|
||||
|
||||
# This script is intended to set up the files necessary to run a master.
|
||||
# It currently creates:
|
||||
# * The basic auth file for access to the kubernetes api server
|
||||
# * Service tokens for accessing the kubernetes api server
|
||||
# * The CA cert and keys for HTTPS access to the kubernetes api server
|
||||
set -o errexit
|
||||
set -o nounset
|
||||
set -o pipefail
|
||||
|
||||
create_token() {
|
||||
echo $(cat /dev/urandom | base64 | tr -d "=+/" | dd bs=32 count=1 2> /dev/null)
|
||||
}
|
||||
|
||||
# Additional address of the API server to be added to the
|
||||
# list of Subject Alternative Names of the server TLS certificate
|
||||
# Should contain internal IP, i.e. IP:10.0.0.1 for 10.0.0.0/24 cluster IP range
|
||||
EXTRA_SANS=$1
|
||||
DATA_DIR=/srv/kubernetes
|
||||
|
||||
# Files in /data are persistent across reboots, so we don't want to re-create the files if they already
|
||||
# exist, because the state is persistent in etcd too, and we don't want a conflict between "old" data in
|
||||
# etcd and "new" data that this script would create for apiserver. Therefore, if the file exist, skip it.
|
||||
if [[ ! -f ${DATA_DIR}/ca.crt ]]; then
|
||||
|
||||
# Create HTTPS certificates
|
||||
groupadd -f -r kube-cert
|
||||
|
||||
# hostname -I gets the ip of the node
|
||||
/make-ca-cert.sh $(hostname -I | awk '{print $1}') ${EXTRA_SANS}
|
||||
|
||||
echo "Certificates created $(date)"
|
||||
else
|
||||
echo "Certificates already found, not recreating."
|
||||
fi
|
||||
|
||||
if [[ ! -f ${DATA_DIR}/basic_auth.csv ]]; then
|
||||
|
||||
# Create basic token authorization
|
||||
echo "admin,admin,admin" > ${DATA_DIR}/basic_auth.csv
|
||||
|
||||
echo "basic_auth.csv created $(date)"
|
||||
else
|
||||
echo "basic_auth.csv already found, not recreating."
|
||||
fi
|
||||
|
||||
if [[ ! -f ${DATA_DIR}/known_tokens.csv ]]; then
|
||||
|
||||
# Create known tokens for service accounts
|
||||
echo "$(create_token),admin,admin" >> ${DATA_DIR}/known_tokens.csv
|
||||
echo "$(create_token),kubelet,kubelet" >> ${DATA_DIR}/known_tokens.csv
|
||||
echo "$(create_token),kube_proxy,kube_proxy" >> ${DATA_DIR}/known_tokens.csv
|
||||
|
||||
echo "known_tokens.csv created $(date)"
|
||||
else
|
||||
echo "known_tokens.csv already found, not recreating."
|
||||
fi
|
||||
|
||||
while true; do
|
||||
sleep 3600
|
||||
done
|
@ -1,52 +0,0 @@
|
||||
{
|
||||
"apiVersion": "v1",
|
||||
"kind": "Pod",
|
||||
"metadata": {
|
||||
"name": "kube-addon-manager",
|
||||
"namespace": "kube-system",
|
||||
"version": "v1"
|
||||
},
|
||||
"spec": {
|
||||
"hostNetwork": true,
|
||||
"containers": [
|
||||
{
|
||||
"name": "kube-addon-manager",
|
||||
"image": "REGISTRY/kube-addon-manager-ARCH:v6.4-beta.1",
|
||||
"resources": {
|
||||
"requests": {
|
||||
"cpu": "5m",
|
||||
"memory": "50Mi"
|
||||
}
|
||||
},
|
||||
"volumeMounts": [
|
||||
{
|
||||
"name": "addons",
|
||||
"mountPath": "/etc/kubernetes/addons",
|
||||
"readOnly": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "kube-addon-manager-data",
|
||||
"image": "REGISTRY/hyperkube-ARCH:VERSION",
|
||||
"command": [
|
||||
"/copy-addons.sh",
|
||||
"multinode"
|
||||
],
|
||||
"volumeMounts": [
|
||||
{
|
||||
"name": "addons",
|
||||
"mountPath": "/srv/kubernetes/addons",
|
||||
"readOnly": false
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"volumes":[
|
||||
{
|
||||
"name": "addons",
|
||||
"emptyDir": {}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
@ -1,52 +0,0 @@
|
||||
{
|
||||
"apiVersion": "v1",
|
||||
"kind": "Pod",
|
||||
"metadata": {
|
||||
"name": "kube-addon-manager",
|
||||
"namespace": "kube-system",
|
||||
"version": "v1"
|
||||
},
|
||||
"spec": {
|
||||
"hostNetwork": true,
|
||||
"containers": [
|
||||
{
|
||||
"name": "kube-addon-manager",
|
||||
"image": "REGISTRY/kube-addon-manager-ARCH:v6.4-beta.1",
|
||||
"resources": {
|
||||
"requests": {
|
||||
"cpu": "5m",
|
||||
"memory": "50Mi"
|
||||
}
|
||||
},
|
||||
"volumeMounts": [
|
||||
{
|
||||
"name": "addons",
|
||||
"mountPath": "/etc/kubernetes/addons",
|
||||
"readOnly": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "kube-addon-manager-data",
|
||||
"image": "REGISTRY/hyperkube-ARCH:VERSION",
|
||||
"command": [
|
||||
"/copy-addons.sh",
|
||||
"singlenode"
|
||||
],
|
||||
"volumeMounts": [
|
||||
{
|
||||
"name": "addons",
|
||||
"mountPath": "/srv/kubernetes/addons",
|
||||
"readOnly": false
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"volumes":[
|
||||
{
|
||||
"name": "addons",
|
||||
"emptyDir": {}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
@ -1,36 +0,0 @@
|
||||
{
|
||||
"apiVersion": "v1",
|
||||
"kind": "Pod",
|
||||
"metadata": {
|
||||
"name": "k8s-etcd",
|
||||
"namespace": "kube-system"
|
||||
},
|
||||
"spec": {
|
||||
"hostNetwork": true,
|
||||
"containers": [
|
||||
{
|
||||
"name": "etcd",
|
||||
"image": "gcr.io/google_containers/etcd-ARCH:2.2.5",
|
||||
"command": [
|
||||
"/usr/local/bin/etcd",
|
||||
"--listen-client-urls=http://127.0.0.1:2379,http://127.0.0.1:4001",
|
||||
"--advertise-client-urls=http://127.0.0.1:2379,http://127.0.0.1:4001",
|
||||
"--data-dir=/var/etcd/data"
|
||||
],
|
||||
"volumeMounts": [
|
||||
{
|
||||
"name": "varetcd",
|
||||
"mountPath": "/var/etcd",
|
||||
"readOnly": false
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"volumes":[
|
||||
{
|
||||
"name": "varetcd",
|
||||
"emptyDir": {}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
@ -1,27 +0,0 @@
|
||||
{
|
||||
"apiVersion": "v1",
|
||||
"kind": "Pod",
|
||||
"metadata": {
|
||||
"name": "k8s-proxy",
|
||||
"namespace": "kube-system"
|
||||
},
|
||||
"spec": {
|
||||
"hostNetwork": true,
|
||||
"containers": [
|
||||
{
|
||||
"name": "kube-proxy",
|
||||
"image": "REGISTRY/hyperkube-ARCH:VERSION",
|
||||
"command": [
|
||||
"/hyperkube",
|
||||
"proxy",
|
||||
"--master=http://127.0.0.1:8080",
|
||||
"--v=2",
|
||||
"--resource-container=\"\""
|
||||
],
|
||||
"securityContext": {
|
||||
"privileged": true
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
@ -1,91 +0,0 @@
|
||||
{
|
||||
"apiVersion": "v1",
|
||||
"kind": "Pod",
|
||||
"metadata": {
|
||||
"name": "k8s-master",
|
||||
"namespace": "kube-system"
|
||||
},
|
||||
"spec":{
|
||||
"hostNetwork": true,
|
||||
"containers":[
|
||||
{
|
||||
"name": "controller-manager",
|
||||
"image": "REGISTRY/hyperkube-ARCH:VERSION",
|
||||
"command": [
|
||||
"/hyperkube",
|
||||
"controller-manager",
|
||||
"--master=127.0.0.1:8080",
|
||||
"--service-account-private-key-file=/srv/kubernetes/server.key",
|
||||
"--root-ca-file=/srv/kubernetes/ca.crt",
|
||||
"--min-resync-period=3m",
|
||||
"--leader-elect=true",
|
||||
"--cluster-cidr=10.1.0.0/16",
|
||||
"--v=2"
|
||||
],
|
||||
"volumeMounts": [
|
||||
{
|
||||
"name": "data",
|
||||
"mountPath": "/srv/kubernetes"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "apiserver",
|
||||
"image": "REGISTRY/hyperkube-ARCH:VERSION",
|
||||
"command": [
|
||||
"/hyperkube",
|
||||
"apiserver",
|
||||
"--service-cluster-ip-range=10.0.0.1/24",
|
||||
"--insecure-bind-address=0.0.0.0",
|
||||
"--etcd-servers=http://127.0.0.1:2379",
|
||||
"--admission-control=NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,ResourceQuota,DefaultTolerationSeconds",
|
||||
"--client-ca-file=/srv/kubernetes/ca.crt",
|
||||
"--basic-auth-file=/srv/kubernetes/basic_auth.csv",
|
||||
"--min-request-timeout=300",
|
||||
"--tls-cert-file=/srv/kubernetes/server.cert",
|
||||
"--tls-private-key-file=/srv/kubernetes/server.key",
|
||||
"--token-auth-file=/srv/kubernetes/known_tokens.csv",
|
||||
"--allow-privileged=true",
|
||||
"--v=2"
|
||||
],
|
||||
"volumeMounts": [
|
||||
{
|
||||
"name": "data",
|
||||
"mountPath": "/srv/kubernetes"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "scheduler",
|
||||
"image": "REGISTRY/hyperkube-ARCH:VERSION",
|
||||
"command": [
|
||||
"/hyperkube",
|
||||
"scheduler",
|
||||
"--master=127.0.0.1:8080",
|
||||
"--leader-elect=true",
|
||||
"--v=2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "setup",
|
||||
"image": "REGISTRY/hyperkube-ARCH:VERSION",
|
||||
"command": [
|
||||
"/setup-files.sh",
|
||||
"IP:10.0.0.1,DNS:kubernetes,DNS:kubernetes.default,DNS:kubernetes.default.svc,DNS:kubernetes.default.svc.cluster.local"
|
||||
],
|
||||
"volumeMounts": [
|
||||
{
|
||||
"name": "data",
|
||||
"mountPath": "/srv/kubernetes"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"volumes": [
|
||||
{
|
||||
"name": "data",
|
||||
"emptyDir": {}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
@ -1,90 +0,0 @@
|
||||
{
|
||||
"apiVersion": "v1",
|
||||
"kind": "Pod",
|
||||
"metadata": {
|
||||
"name": "k8s-master",
|
||||
"namespace": "kube-system"
|
||||
},
|
||||
"spec":{
|
||||
"hostNetwork": true,
|
||||
"containers":[
|
||||
{
|
||||
"name": "controller-manager",
|
||||
"image": "REGISTRY/hyperkube-ARCH:VERSION",
|
||||
"command": [
|
||||
"/hyperkube",
|
||||
"controller-manager",
|
||||
"--master=127.0.0.1:8080",
|
||||
"--service-account-private-key-file=/srv/kubernetes/server.key",
|
||||
"--root-ca-file=/srv/kubernetes/ca.crt",
|
||||
"--min-resync-period=3m",
|
||||
"--leader-elect=true",
|
||||
"--v=2"
|
||||
],
|
||||
"volumeMounts": [
|
||||
{
|
||||
"name": "data",
|
||||
"mountPath": "/srv/kubernetes"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "apiserver",
|
||||
"image": "REGISTRY/hyperkube-ARCH:VERSION",
|
||||
"command": [
|
||||
"/hyperkube",
|
||||
"apiserver",
|
||||
"--service-cluster-ip-range=10.0.0.1/24",
|
||||
"--insecure-bind-address=127.0.0.1",
|
||||
"--etcd-servers=http://127.0.0.1:2379",
|
||||
"--admission-control=NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,ResourceQuota,DefaultTolerationSeconds",
|
||||
"--client-ca-file=/srv/kubernetes/ca.crt",
|
||||
"--basic-auth-file=/srv/kubernetes/basic_auth.csv",
|
||||
"--min-request-timeout=300",
|
||||
"--tls-cert-file=/srv/kubernetes/server.cert",
|
||||
"--tls-private-key-file=/srv/kubernetes/server.key",
|
||||
"--token-auth-file=/srv/kubernetes/known_tokens.csv",
|
||||
"--allow-privileged=true",
|
||||
"--v=2"
|
||||
],
|
||||
"volumeMounts": [
|
||||
{
|
||||
"name": "data",
|
||||
"mountPath": "/srv/kubernetes"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "scheduler",
|
||||
"image": "REGISTRY/hyperkube-ARCH:VERSION",
|
||||
"command": [
|
||||
"/hyperkube",
|
||||
"scheduler",
|
||||
"--master=127.0.0.1:8080",
|
||||
"--leader-elect=true",
|
||||
"--v=2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "setup",
|
||||
"image": "REGISTRY/hyperkube-ARCH:VERSION",
|
||||
"command": [
|
||||
"/setup-files.sh",
|
||||
"IP:10.0.0.1,DNS:kubernetes,DNS:kubernetes.default,DNS:kubernetes.default.svc,DNS:kubernetes.default.svc.cluster.local"
|
||||
],
|
||||
"volumeMounts": [
|
||||
{
|
||||
"name": "data",
|
||||
"mountPath": "/srv/kubernetes"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"volumes": [
|
||||
{
|
||||
"name": "data",
|
||||
"emptyDir": {}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user