- kubeadm: the command to bootstrap the cluster.
- kubelet: the component that runs on all of the machines in your cluster and does things like starting pods and containers.
- kubectl: the command line util to talk to your cluster.
apt-get -d, --download-only 只下载
apt-get install -d kubeadm kubelet kubectl
apt-get install -d kubeadm kubelet kubectl
dpkg -R --install ./
set -x
dockerimages=(k8s.gcr.io/kube-apiserver-amd64:v1.9.1
k8s.gcr.io/kube-controller-manager-amd64:v1.9.1
k8s.gcr.io/kube-scheduler-amd64:v1.9.1
k8s.gcr.io/kube-proxy-amd64:v1.9.1
k8s.gcr.io/etcd-amd64:3.1.10
k8s.gcr.io/pause-amd64:3.0
k8s.gcr.io/k8s-dns-sidecar-amd64:1.14.7
k8s.gcr.io/k8s-dns-kube-dns-amd64:1.14.7
k8s.gcr.io/k8s-dns-dnsmasq-nanny-amd64:1.14.7)
j=1
for i in ${dockerimages[@]}
do
echo $i
echo $j
docker pull $i && docker save $i | xz $j.tar.xz
docker rmi $i
let j+=1
done
set +x
kubelet cgroup driver 必须要和docker一致
sed -i "s/cgroup-driver=systemd/cgroup-driver=cgroupfs/g" /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
docker tag k8s.gcr.io/kube-scheduler-amd64:v1.10.1 oa.epeijing.cn:5000/kube-scheduler-amd64:v1.10.1
docker push oa.epeijing.cn:5000/kube-scheduler-amd64:v1.10.1
docker tag k8s.gcr.io/kube-proxy-amd64:v1.10.1 oa.epeijing.cn:5000/kube-proxy-amd64:v1.10.1
docker push oa.epeijing.cn:5000/kube-proxy-amd64:v1.10.1
docker tag k8s.gcr.io/kube-apiserver-amd64:v1.10.1 oa.epeijing.cn:5000/kube-apiserver-amd64:v1.10.1
docker push oa.epeijing.cn:5000/kube-apiserver-amd64:v1.10.1
docker tag k8s.gcr.io/kube-controller-manager-amd64:v1.10.1 oa.epeijing.cn:5000/kube-controller-manager-amd64:v1.10.1
docker push oa.epeijing.cn:5000/kube-controller-manager-amd64:v1.10.1
docker tag k8s.gcr.io/etcd-amd64:3.1.12 oa.epeijing.cn:5000/etcd-amd64:3.1.12
docker push oa.epeijing.cn:5000/etcd-amd64:3.1.12
docker tag k8s.gcr.io/pause-amd64:3.1 oa.epeijing.cn:5000/pause-amd64:3.1
docker push oa.epeijing.cn:5000/pause-amd64:3.1
docker tag k8s.gcr.io/k8s-dns-dnsmasq-nanny-amd64:1.14.8 oa.epeijing.cn:5000/k8s-dns-dnsmasq-nanny-amd64:1.14.8
docker push oa.epeijing.cn:5000/k8s-dns-dnsmasq-nanny-amd64:1.14.8
docker tag k8s.gcr.io/k8s-dns-sidecar-amd64:1.14.8 oa.epeijing.cn:5000/k8s-dns-sidecar-amd64:1.14.8
docker push oa.epeijing.cn:5000/k8s-dns-sidecar-amd64:1.14.8
docker tag k8s.gcr.io/k8s-dns-kube-dns-amd64:1.14.8 oa.epeijing.cn:5000/k8s-dns-kube-dns-amd64:1.14.8
docker push oa.epeijing.cn:5000/k8s-dns-kube-dns-amd64:1.14.8
拉取镜像
docker pull oa.epeijing.cn:5000/kube-scheduler-amd64:v1.10.1
docker tag oa.epeijing.cn:5000/kube-scheduler-amd64:v1.10.1 k8s.gcr.io/kube-scheduler-amd64:v1.10.1
docker pull oa.epeijing.cn:5000/kube-proxy-amd64:v1.10.1
docker tag oa.epeijing.cn:5000/kube-proxy-amd64:v1.10.1 k8s.gcr.io/kube-proxy-amd64:v1.10.1
docker pull oa.epeijing.cn:5000/kube-apiserver-amd64:v1.10.1
docker tag oa.epeijing.cn:5000/kube-apiserver-amd64:v1.10.1 k8s.gcr.io/kube-apiserver-amd64:v1.10.1
docker pull oa.epeijing.cn:5000/kube-controller-manager-amd64:v1.10.1
docker tag oa.epeijing.cn:5000/kube-controller-manager-amd64:v1.10.1 k8s.gcr.io/kube-controller-manager-amd64:v1.10.1
docker pull oa.epeijing.cn:5000/etcd-amd64:3.1.12
docker tag oa.epeijing.cn:5000/etcd-amd64:3.1.12 k8s.gcr.io/etcd-amd64:3.1.12
docker pull oa.epeijing.cn:5000/pause-amd64:3.1
docker tag oa.epeijing.cn:5000/pause-amd64:3.1 k8s.gcr.io/pause-amd64:3.1
docker pull oa.epeijing.cn:5000/k8s-dns-dnsmasq-nanny-amd64:1.14.8
docker tag oa.epeijing.cn:5000/k8s-dns-dnsmasq-nanny-amd64:1.14.8 k8s.gcr.io/k8s-dns-dnsmasq-nanny-amd64:1.14.8
docker pull oa.epeijing.cn:5000/k8s-dns-sidecar-amd64:1.14.8
docker tag oa.epeijing.cn:5000/k8s-dns-sidecar-amd64:1.14.8 k8s.gcr.io/k8s-dns-sidecar-amd64:1.14.8
docker pull oa.epeijing.cn:5000/k8s-dns-kube-dns-amd64:1.14.8
docker tag oa.epeijing.cn:5000/k8s-dns-kube-dns-amd64:1.14.8 k8s.gcr.io/k8s-dns-kube-dns-amd64:1.14.8
flannel要求cgroup是cgroupfs 网络
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/v0.9.1/Documentation/kube-flannel.yml
kubeadm init --pod-network-cidr=10.244.0.0/16 --kubernetes-version=v1.10.1
### 查看dns状态
```bash
kubectl get pods --all-namespaces
必须要有kube-proxy, kube-pause flannel