mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-29 14:37:00 +00:00
Merge pull request #10393 from ZJU-SEL/updatek8s
Bump the ubuntu k8s version to 0.19.3
This commit is contained in:
commit
0c58e8a3f3
@ -42,8 +42,10 @@ cp flannel-${FLANNEL_VERSION}/flanneld binaries/minion
|
|||||||
|
|
||||||
# ectd
|
# ectd
|
||||||
echo "Download etcd release ..."
|
echo "Download etcd release ..."
|
||||||
ETCD_VERSION=${ETCD_VERSION:-"2.0.9"}
|
|
||||||
|
ETCD_VERSION=${ETCD_VERSION:-"2.0.12"}
|
||||||
ETCD="etcd-v${ETCD_VERSION}-linux-amd64"
|
ETCD="etcd-v${ETCD_VERSION}-linux-amd64"
|
||||||
|
|
||||||
if [ ! -f etcd.tar.gz ] ; then
|
if [ ! -f etcd.tar.gz ] ; then
|
||||||
curl -L https://github.com/coreos/etcd/releases/download/v${ETCD_VERSION}/${ETCD}.tar.gz -o etcd.tar.gz
|
curl -L https://github.com/coreos/etcd/releases/download/v${ETCD_VERSION}/${ETCD}.tar.gz -o etcd.tar.gz
|
||||||
tar xzf etcd.tar.gz
|
tar xzf etcd.tar.gz
|
||||||
@ -53,7 +55,8 @@ cp $ETCD/etcd $ETCD/etcdctl binaries/minion
|
|||||||
|
|
||||||
# k8s
|
# k8s
|
||||||
echo "Download kubernetes release ..."
|
echo "Download kubernetes release ..."
|
||||||
K8S_VERSION=${K8S_VERSION:-"0.18.0"}
|
K8S_VERSION=${K8S_VERSION:-"0.19.3"}
|
||||||
|
|
||||||
if [ ! -f kubernetes.tar.gz ] ; then
|
if [ ! -f kubernetes.tar.gz ] ; then
|
||||||
curl -L https://github.com/GoogleCloudPlatform/kubernetes/releases/download/v${K8S_VERSION}/kubernetes.tar.gz -o kubernetes.tar.gz
|
curl -L https://github.com/GoogleCloudPlatform/kubernetes/releases/download/v${K8S_VERSION}/kubernetes.tar.gz -o kubernetes.tar.gz
|
||||||
tar xzf kubernetes.tar.gz
|
tar xzf kubernetes.tar.gz
|
||||||
@ -71,4 +74,5 @@ cp kubernetes/server/kubernetes/server/bin/kubelet \
|
|||||||
cp kubernetes/server/kubernetes/server/bin/kubectl binaries/
|
cp kubernetes/server/kubernetes/server/bin/kubectl binaries/
|
||||||
|
|
||||||
rm -rf flannel* kubernetes* etcd*
|
rm -rf flannel* kubernetes* etcd*
|
||||||
|
|
||||||
echo "Done! All your commands locate in ./binaries dir"
|
echo "Done! All your commands locate in ./binaries dir"
|
||||||
|
@ -37,7 +37,7 @@ echo $FLANNEL_NET
|
|||||||
export FLANNEL_OPTS=${FLANNEL_OPTS:-"Network": 172.16.0.0/16}
|
export FLANNEL_OPTS=${FLANNEL_OPTS:-"Network": 172.16.0.0/16}
|
||||||
|
|
||||||
# Admission Controllers to invoke prior to persisting objects in cluster
|
# Admission Controllers to invoke prior to persisting objects in cluster
|
||||||
ADMISSION_CONTROL=${ADMISSION_CONTROL:-NamespaceLifecycle,NamespaceAutoProvision,LimitRanger,ServiceAccount,ResourceQuota}
|
export ADMISSION_CONTROL=NamespaceLifecycle,NamespaceAutoProvision,LimitRanger,ServiceAccount,ResourceQuota
|
||||||
|
|
||||||
# Optional: Enable node logging.
|
# Optional: Enable node logging.
|
||||||
ENABLE_NODE_LOGGING=false
|
ENABLE_NODE_LOGGING=false
|
||||||
|
@ -19,13 +19,16 @@
|
|||||||
set -e
|
set -e
|
||||||
|
|
||||||
KUBE_ROOT=$(dirname "${BASH_SOURCE}")/../..
|
KUBE_ROOT=$(dirname "${BASH_SOURCE}")/../..
|
||||||
source "config-default.sh"
|
source "util.sh"
|
||||||
|
detect-master
|
||||||
|
KUBE_SERVER="http:\/\/${KUBE_MASTER_IP}:8080"
|
||||||
|
|
||||||
if [ "${ENABLE_CLUSTER_DNS}" == true ]; then
|
if [ "${ENABLE_CLUSTER_DNS}" == true ]; then
|
||||||
echo "Deploying DNS on kubernetes"
|
echo "Deploying DNS on kubernetes"
|
||||||
sed -e "s/{{ pillar\['dns_replicas'\] }}/${DNS_REPLICAS}/g;s/{{ pillar\['dns_domain'\] }}/${DNS_DOMAIN}/g" skydns-rc.yaml.template > skydns-rc.yaml
|
sed -e "s/{{ pillar\['dns_replicas'\] }}/${DNS_REPLICAS}/g;s/{{ pillar\['dns_domain'\] }}/${DNS_DOMAIN}/g;s/kube_server_url/${KUBE_SERVER}/g;" skydns-rc.yaml.template > skydns-rc.yaml
|
||||||
sed -e "s/{{ pillar\['dns_server'\] }}/${DNS_SERVER_IP}/g" skydns-svc.yaml.template > skydns-svc.yaml
|
sed -e "s/{{ pillar\['dns_server'\] }}/${DNS_SERVER_IP}/g" skydns-svc.yaml.template > skydns-svc.yaml
|
||||||
|
|
||||||
# use kubectl to create skydns rc and service
|
# use kubectl to create skydns rc and service
|
||||||
"${KUBE_ROOT}/cluster/kubectl.sh" create -f skydns-rc.yaml
|
"${KUBE_ROOT}/cluster/kubectl.sh" --namespace=kube-system create -f skydns-rc.yaml
|
||||||
"${KUBE_ROOT}/cluster/kubectl.sh" create -f skydns-svc.yaml
|
"${KUBE_ROOT}/cluster/kubectl.sh" --namespace=kube-system create -f skydns-svc.yaml
|
||||||
fi
|
fi
|
||||||
|
@ -1,49 +1,61 @@
|
|||||||
|
apiVersion: v1
|
||||||
kind: ReplicationController
|
kind: ReplicationController
|
||||||
apiVersion: v1beta1
|
metadata:
|
||||||
id: kube-dns
|
name: kube-dns-v4
|
||||||
namespace: kube-system
|
namespace: kube-system
|
||||||
labels:
|
labels:
|
||||||
k8s-app: kube-dns
|
|
||||||
kubernetes.io/cluster-service: "true"
|
|
||||||
desiredState:
|
|
||||||
replicas: {{ pillar['dns_replicas'] }}
|
|
||||||
replicaSelector:
|
|
||||||
k8s-app: kube-dns
|
k8s-app: kube-dns
|
||||||
podTemplate:
|
version: v4
|
||||||
labels:
|
kubernetes.io/cluster-service: "true"
|
||||||
name: kube-dns
|
spec:
|
||||||
k8s-app: kube-dns
|
replicas: {{ pillar['dns_replicas'] }}
|
||||||
kubernetes.io/cluster-service: "true"
|
selector:
|
||||||
desiredState:
|
k8s-app: kube-dns
|
||||||
manifest:
|
version: v4
|
||||||
version: v1beta2
|
template:
|
||||||
id: kube-dns
|
metadata:
|
||||||
dnsPolicy: "Default" # Don't use cluster DNS.
|
labels:
|
||||||
containers:
|
k8s-app: kube-dns
|
||||||
- name: etcd
|
version: v4
|
||||||
image: quay.io/coreos/etcd:v2.0.3
|
kubernetes.io/cluster-service: "true"
|
||||||
command: [
|
spec:
|
||||||
# entrypoint = "/etcd",
|
containers:
|
||||||
"-listen-client-urls=http://0.0.0.0:2379,http://0.0.0.0:4001",
|
- name: etcd
|
||||||
"-initial-cluster-token=skydns-etcd",
|
image: gcr.io/google_containers/etcd:2.0.9
|
||||||
"-advertise-client-urls=http://127.0.0.1:4001",
|
command:
|
||||||
]
|
- /usr/local/bin/etcd
|
||||||
- name: kube2sky
|
- -listen-client-urls
|
||||||
image: gcr.io/google_containers/kube2sky:1.1
|
- http://127.0.0.1:2379,http://127.0.0.1:4001
|
||||||
command: [
|
- -advertise-client-urls
|
||||||
# entrypoint = "/kube2sky",
|
- http://127.0.0.1:2379,http://127.0.0.1:4001
|
||||||
"-domain={{ pillar['dns_domain'] }}",
|
- -initial-cluster-token
|
||||||
]
|
- skydns-etcd
|
||||||
- name: skydns
|
- name: kube2sky
|
||||||
image: gcr.io/google_containers/skydns:2015-03-11-001
|
image: gcr.io/google_containers/kube2sky:1.10
|
||||||
command: [
|
args:
|
||||||
# entrypoint = "/skydns",
|
# command = "/kube2sky"
|
||||||
"-machines=http://localhost:4001",
|
- -domain={{ pillar['dns_domain'] }}
|
||||||
"-addr=0.0.0.0:53",
|
- -kube_master_url=kube_server_url
|
||||||
"-domain={{ pillar['dns_domain'] }}.",
|
- name: skydns
|
||||||
]
|
image: gcr.io/google_containers/skydns:2015-03-11-001
|
||||||
ports:
|
args:
|
||||||
- name: dns
|
# command = "/skydns"
|
||||||
containerPort: 53
|
- -machines=http://localhost:4001
|
||||||
protocol: UDP
|
- -addr=0.0.0.0:53
|
||||||
|
- -domain={{ pillar['dns_domain'] }}.
|
||||||
|
ports:
|
||||||
|
- containerPort: 53
|
||||||
|
name: dns
|
||||||
|
protocol: UDP
|
||||||
|
- containerPort: 53
|
||||||
|
name: dns-tcp
|
||||||
|
protocol: TCP
|
||||||
|
livenessProbe:
|
||||||
|
exec:
|
||||||
|
command:
|
||||||
|
- /bin/sh
|
||||||
|
- -c
|
||||||
|
- nslookup kubernetes.default.svc.{{ pillar['dns_domain'] }} localhost >/dev/null
|
||||||
|
initialDelaySeconds: 30
|
||||||
|
timeoutSeconds: 5
|
||||||
|
dnsPolicy: Default # Don't use cluster DNS.
|
@ -1,14 +1,20 @@
|
|||||||
|
apiVersion: v1
|
||||||
kind: Service
|
kind: Service
|
||||||
apiVersion: v1beta1
|
metadata:
|
||||||
id: kube-dns
|
|
||||||
namespace: kube-system
|
|
||||||
protocol: UDP
|
|
||||||
port: 53
|
|
||||||
portalIP: {{ pillar['dns_server'] }}
|
|
||||||
containerPort: 53
|
|
||||||
labels:
|
|
||||||
k8s-app: kube-dns
|
|
||||||
name: kube-dns
|
name: kube-dns
|
||||||
kubernetes.io/cluster-service: "true"
|
namespace: kube-system
|
||||||
selector:
|
labels:
|
||||||
k8s-app: kube-dns
|
k8s-app: kube-dns
|
||||||
|
kubernetes.io/cluster-service: "true"
|
||||||
|
kubernetes.io/name: "KubeDNS"
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
k8s-app: kube-dns
|
||||||
|
clusterIP: {{ pillar['dns_server'] }}
|
||||||
|
ports:
|
||||||
|
- name: dns
|
||||||
|
port: 53
|
||||||
|
protocol: UDP
|
||||||
|
- name: dns-tcp
|
||||||
|
port: 53
|
||||||
|
protocol: TCP
|
||||||
|
@ -183,6 +183,16 @@ function verify-minion(){
|
|||||||
printf "\n"
|
printf "\n"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function genServiceAccountsKey() {
|
||||||
|
SERVICE_ACCOUNT_LOOKUP=${SERVICE_ACCOUNT_LOOKUP:-false}
|
||||||
|
SERVICE_ACCOUNT_KEY=${SERVICE_ACCOUNT_KEY:-"/tmp/kube-serviceaccount.key"}
|
||||||
|
# Generate ServiceAccount key if needed
|
||||||
|
if [[ ! -f "${SERVICE_ACCOUNT_KEY}" ]]; then
|
||||||
|
mkdir -p "$(dirname ${SERVICE_ACCOUNT_KEY})"
|
||||||
|
openssl genrsa -out "${SERVICE_ACCOUNT_KEY}" 2048 2>/dev/null
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
function create-etcd-opts(){
|
function create-etcd-opts(){
|
||||||
cat <<EOF > ~/kube/default/etcd
|
cat <<EOF > ~/kube/default/etcd
|
||||||
ETCD_OPTS="-name $1 \
|
ETCD_OPTS="-name $1 \
|
||||||
@ -200,13 +210,17 @@ KUBE_APISERVER_OPTS="--address=0.0.0.0 \
|
|||||||
--port=8080 \
|
--port=8080 \
|
||||||
--etcd_servers=http://127.0.0.1:4001 \
|
--etcd_servers=http://127.0.0.1:4001 \
|
||||||
--logtostderr=true \
|
--logtostderr=true \
|
||||||
--service-cluster-ip-range=${1}"
|
--service-cluster-ip-range=${1} \
|
||||||
|
--admission_control=${2} \
|
||||||
|
--service_account_key_file=/tmp/kube-serviceaccount.key \
|
||||||
|
--service_account_lookup=false "
|
||||||
EOF
|
EOF
|
||||||
}
|
}
|
||||||
|
|
||||||
function create-kube-controller-manager-opts(){
|
function create-kube-controller-manager-opts(){
|
||||||
cat <<EOF > ~/kube/default/kube-controller-manager
|
cat <<EOF > ~/kube/default/kube-controller-manager
|
||||||
KUBE_CONTROLLER_MANAGER_OPTS="--master=127.0.0.1:8080 \
|
KUBE_CONTROLLER_MANAGER_OPTS="--master=127.0.0.1:8080 \
|
||||||
|
--service_account_private_key_file=/tmp/kube-serviceaccount.key \
|
||||||
--logtostderr=true"
|
--logtostderr=true"
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
@ -307,7 +321,7 @@ function detect-minions {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# Instantiate a kubernetes cluster on ubuntu
|
# Instantiate a kubernetes cluster on ubuntu
|
||||||
function kube-up {
|
function kube-up() {
|
||||||
KUBE_ROOT=$(dirname "${BASH_SOURCE}")/../..
|
KUBE_ROOT=$(dirname "${BASH_SOURCE}")/../..
|
||||||
source "${KUBE_ROOT}/cluster/ubuntu/${KUBE_CONFIG_FILE-"config-default.sh"}"
|
source "${KUBE_ROOT}/cluster/ubuntu/${KUBE_CONFIG_FILE-"config-default.sh"}"
|
||||||
|
|
||||||
@ -361,9 +375,10 @@ function provision-master() {
|
|||||||
|
|
||||||
# remote login to MASTER and use sudo to configue k8s master
|
# remote login to MASTER and use sudo to configue k8s master
|
||||||
ssh $SSH_OPTS -t $MASTER "source ~/kube/util.sh; \
|
ssh $SSH_OPTS -t $MASTER "source ~/kube/util.sh; \
|
||||||
|
genServiceAccountsKey; \
|
||||||
setClusterInfo; \
|
setClusterInfo; \
|
||||||
create-etcd-opts "${mm[${MASTER_IP}]}" "${MASTER_IP}" "${CLUSTER}"; \
|
create-etcd-opts "${mm[${MASTER_IP}]}" "${MASTER_IP}" "${CLUSTER}"; \
|
||||||
create-kube-apiserver-opts "${SERVICE_CLUSTER_IP_RANGE}"; \
|
create-kube-apiserver-opts "${SERVICE_CLUSTER_IP_RANGE}" "${ADMISSION_CONTROL}"; \
|
||||||
create-kube-controller-manager-opts "${MINION_IPS}"; \
|
create-kube-controller-manager-opts "${MINION_IPS}"; \
|
||||||
create-kube-scheduler-opts; \
|
create-kube-scheduler-opts; \
|
||||||
create-flanneld-opts; \
|
create-flanneld-opts; \
|
||||||
@ -402,8 +417,9 @@ function provision-masterandminion() {
|
|||||||
# remote login to the node and use sudo to configue k8s
|
# remote login to the node and use sudo to configue k8s
|
||||||
ssh $SSH_OPTS -t $MASTER "source ~/kube/util.sh; \
|
ssh $SSH_OPTS -t $MASTER "source ~/kube/util.sh; \
|
||||||
setClusterInfo; \
|
setClusterInfo; \
|
||||||
|
genServiceAccountsKey; \
|
||||||
create-etcd-opts "${mm[${MASTER_IP}]}" "${MASTER_IP}" "${CLUSTER}"; \
|
create-etcd-opts "${mm[${MASTER_IP}]}" "${MASTER_IP}" "${CLUSTER}"; \
|
||||||
create-kube-apiserver-opts "${SERVICE_CLUSTER_IP_RANGE}"; \
|
create-kube-apiserver-opts "${SERVICE_CLUSTER_IP_RANGE}" "${ADMISSION_CONTROL}"; \
|
||||||
create-kube-controller-manager-opts "${MINION_IPS}"; \
|
create-kube-controller-manager-opts "${MINION_IPS}"; \
|
||||||
create-kube-scheduler-opts; \
|
create-kube-scheduler-opts; \
|
||||||
create-kubelet-opts "${MASTER_IP}" "${MASTER_IP}" "${DNS_SERVER_IP}" "${DNS_DOMAIN}";
|
create-kubelet-opts "${MASTER_IP}" "${MASTER_IP}" "${DNS_SERVER_IP}" "${DNS_DOMAIN}";
|
||||||
|
@ -33,7 +33,7 @@ Joyent | Juju | Ubuntu | flannel | [docs](../../docs/g
|
|||||||
AWS | Saltstack | Ubuntu | OVS | [docs](../../docs/getting-started-guides/aws.md) | | Community (@justinsb) | Uses K8s version 0.5.0
|
AWS | Saltstack | Ubuntu | OVS | [docs](../../docs/getting-started-guides/aws.md) | | Community (@justinsb) | Uses K8s version 0.5.0
|
||||||
Vmware | CoreOS | CoreOS | flannel | [docs](../../docs/getting-started-guides/coreos.md) | | Community (@kelseyhightower) | Uses K8s version 0.15.0
|
Vmware | CoreOS | CoreOS | flannel | [docs](../../docs/getting-started-guides/coreos.md) | | Community (@kelseyhightower) | Uses K8s version 0.15.0
|
||||||
Azure | Saltstack | Ubuntu | OpenVPN | [docs](../../docs/getting-started-guides/azure.md) | | Community |
|
Azure | Saltstack | Ubuntu | OpenVPN | [docs](../../docs/getting-started-guides/azure.md) | | Community |
|
||||||
Bare-metal | custom | Ubuntu | flannel | [docs](../../docs/getting-started-guides/ubuntu.md) | | Community (@resouer @WIZARD-CXY) | use k8s version 0.18.0
|
Bare-metal | custom | Ubuntu | flannel | [docs](../../docs/getting-started-guides/ubuntu.md) | | Community (@resouer @WIZARD-CXY) | use k8s version 0.19.3
|
||||||
Local | | | _none_ | [docs](../../docs/getting-started-guides/locally.md) | | Community (@preillyme) |
|
Local | | | _none_ | [docs](../../docs/getting-started-guides/locally.md) | | Community (@preillyme) |
|
||||||
libvirt/KVM | CoreOS | CoreOS | libvirt/KVM | [docs](../../docs/getting-started-guides/libvirt-coreos.md) | | Community (@lhuard1A) |
|
libvirt/KVM | CoreOS | CoreOS | libvirt/KVM | [docs](../../docs/getting-started-guides/libvirt-coreos.md) | | Community (@lhuard1A) |
|
||||||
oVirt | | | | [docs](../../docs/getting-started-guides/ovirt.md) | | Community (@simon3z) |
|
oVirt | | | | [docs](../../docs/getting-started-guides/ovirt.md) | | Community (@simon3z) |
|
||||||
|
@ -22,7 +22,7 @@ This document describes how to deploy kubernetes on ubuntu nodes, including 1 ma
|
|||||||
|
|
||||||
*3 These guide is tested OK on Ubuntu 14.04 LTS 64bit server, but it should also work on most Ubuntu versions*
|
*3 These guide is tested OK on Ubuntu 14.04 LTS 64bit server, but it should also work on most Ubuntu versions*
|
||||||
|
|
||||||
*4 Dependences of this guide: etcd-2.0.9, flannel-0.4.0, k8s-0.18.0, but it may work with higher versions*
|
*4 Dependences of this guide: etcd-2.0.12, flannel-0.4.0, k8s-0.19.3, but it may work with higher versions*
|
||||||
|
|
||||||
*5 All the remote servers can be ssh logged in without a password by using key authentication*
|
*5 All the remote servers can be ssh logged in without a password by using key authentication*
|
||||||
|
|
||||||
@ -35,7 +35,7 @@ then `$ cd kubernetes/cluster/ubuntu`.
|
|||||||
|
|
||||||
Then run `$ ./build.sh`, this will download all the needed binaries into `./binaries`.
|
Then run `$ ./build.sh`, this will download all the needed binaries into `./binaries`.
|
||||||
|
|
||||||
You can customize your etcd version, flannel version, k8s version by changing variable `ETCD_VERSION` , `FLANNEL_VERSION` and `K8S_VERSION` in build.sh, default etcd version is 2.0.9, flannel version is 0.4.0 and K8s version is 0.18.0.
|
You can customize your etcd version, flannel version, k8s version by changing variable `ETCD_VERSION` , `FLANNEL_VERSION` and `K8S_VERSION` in build.sh, default etcd version is 2.0.12, flannel version is 0.4.0 and K8s version is 0.19.3.
|
||||||
|
|
||||||
Please make sure that there are `kube-apiserver`, `kube-controller-manager`, `kube-scheduler`, `kubelet`, `kube-proxy`, `etcd`, `etcdctl` and `flannel` in the binaries/master or binaries/minion directory.
|
Please make sure that there are `kube-apiserver`, `kube-controller-manager`, `kube-scheduler`, `kubelet`, `kube-proxy`, `etcd`, `etcdctl` and `flannel` in the binaries/master or binaries/minion directory.
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user