Skip to content

Instantly share code, notes, and snippets.

@webwurst
Created October 21, 2016 09:26
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save webwurst/e65839c4889b8c3c88051ffd7b072168 to your computer and use it in GitHub Desktop.
Save webwurst/e65839c4889b8c3c88051ffd7b072168 to your computer and use it in GitHub Desktop.
# using scaleway-cli to create a new host

scw create \
  --name kube-1 \
  --commercial-type VC1M \
  --volume 50G \
  --env "kubeadm master" \
  Ubuntu_Xenial

scw start kube-1
scw exec --wait kube-1 echo "ready"


scw exec --wait kube-1 bash

# on the host
apt update
# fix base-files package on scaleway
apt -y -o Dpkg::Options::="--force-confnew" install base-files
apt -y upgrade
apt -y install apt-transport-https jq fish ethtool

curl https://packages.cloud.google.com/apt/doc/apt-key.gpg \
  | apt-key add -

echo 'deb http://apt.kubernetes.io/ kubernetes-xenial-unstable main' \
  > /etc/apt/sources.list.d/kubernetes.list

apt update
apt -y install docker.io kubelet kubeadm kubectl kubernetes-cni


# preflight check errors:
# 	/etc/kubernetes is not empty
rm /etc/kubernetes -r

kubeadm init \
  --api-advertise-addresses 163.172.161.23

kubectl apply --filename https://git.io/weave-kube

kubectl taint nodes --all dedicated-

kubeadm version
# kubeadm version: version.Info{Major:"1", Minor:"5+", GitVersion:"v1.5.0-alpha.1.409+714f816a349e79", GitCommit:"714f816a349e7978bc93b35c67ce7b9851e53a6f", GitTreeState:"clean", BuildDate:"2016-10-17T13:01:29Z", GoVersion:"go1.6.3", Compiler:"gc", Platform:"linux/amd64"}

kubectl get service -n kube-system kube-dns -o yaml
# apiVersion: v1
# kind: Service
# metadata:
#   creationTimestamp: 2016-10-21T09:13:18Z
#   labels:
#     component: kube-dns
#     k8s-app: kube-dns
#     kubernetes.io/cluster-service: "true"
#     name: kube-dns
#     tier: node
#   name: kube-dns
#   namespace: kube-system
#   resourceVersion: "199"
#   selfLink: /api/v1/namespaces/kube-system/services/kube-dns
#   uid: 9b38864b-976e-11e6-a169-de1958265006
# spec:
#   clusterIP: 10.0.0.10
#   ports:
#   - name: dns
#     port: 53
#     protocol: UDP
#     targetPort: 53
#   - name: dns-tcp
#     port: 53
#     protocol: TCP
#     targetPort: 53
#   selector:
#     name: kube-dns
#   sessionAffinity: None
#   type: ClusterIP
# status:
#   loadBalancer: {}

kubectl get services --all-namespaces
# NAMESPACE     NAME         CLUSTER-IP   EXTERNAL-IP   PORT(S)         AGE
# default       kubernetes   10.0.0.1     <none>        443/TCP         7m
# kube-system   kube-dns     10.0.0.10    <none>        53/UDP,53/TCP   7m

ps -ef | grep kube-apiserver
# root     19171 19155  2 09:12 ?        00:00:14 /usr/local/bin/kube-apiserver --v=4 --insecure-bind-address=127.0.0.1 --admission-control=NamespaceLifecycle,LimitRanger,ServiceAccount,PersistentVolumeLabel,DefaultStorageClass,ResourceQuota --service-cluster-ip-range=10.12.0.0/12 --service-account-key-file=/etc/kubernetes/pki/apiserver-key.pem --client-ca-file=/etc/kubernetes/pki/ca.pem --tls-cert-file=/etc/kubernetes/pki/apiserver.pem --tls-private-key-file=/etc/kubernetes/pki/apiserver-key.pem --token-auth-file=/etc/kubernetes/pki/tokens.csv --secure-port=6443 --allow-privileged --advertise-address=163.172.161.23 --etcd-servers=http://127.0.0.1:2379

kubectl run utils --stdin --tty --restart Never --rm --image webwurst/curl-utils --command /bin/sh
# in the pod

dig kubernetes.default.svc.cluster.local +short
#
# ; <<>> DiG 9.10.4-P3 <<>> kubernetes.default.svc.cluster.local +short
# ;; global options: +cmd
# ;; connection timed out; no servers could be reached

dig @10.0.0.10 kubernetes.default.svc.cluster.local +short
# 10.0.0.1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment