- 准备虚拟环境
1台master,3台node
$ ls
CentOS-7.1.1503-x86_64-netboot.box Vagrantfile
$ vagrant box add centos7 ./CentOS-7.1.1503-x86_64-netboot.box
vagrant up && vagrant ssh
其中,CentOS7的镜像包来自 http://www.vagrantbox.es/ ,而Vagrantfile是:
Vagrant.configure("2") do |config|
config.vm.box = "centos7"
config.vm.network "private_network", ip: "192.168.33.17" # master是17,其他3个node分别是18,19,20
end
安装常用工具
sudo yum install -y wget curl go docker
sudo yum install -y net-tools // for "ifconfig"
- 下载Kubernetes binary 包
wget https://github.com/kubernetes/kubernetes/releases/download/v1.10.1/kubernetes.tar.gz
解压后,通过脚本下载 server binary包
./kubernetes/cluster/get-kube-binaries.sh
- 设置yum源
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
- 下载 kubectl 工具
curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.10.0/bin/linux/amd64/kubectl
- 安装docker
sudo yum install -y docker
- 设置hostname
sudo hostnamectl --static set-hostname k8s-master
sudo hostnamectl --static set-hostname k8s-node1
sudo hostnamectl --static set-hostname k8s-node2
sudo hostnamectl --static set-hostname k8s-node3
- 关闭防火墙
sudo systemctl stop firewalld && sudo systemctl disable firewalld
- ntp
sudo yum -y install ntp && sudo systemctl start ntpd && sudo systemctl enable ntpd
You will run
docker
,kubelet
, andkube-proxy
outside of a container, the same way you would run any system daemon, so you just need the bare binaries. Foretcd
,kube-apiserver
,kube-controller-manager
, andkube-scheduler
, we recommend that you run these as containers, so you need an image to be built.
就是说前三个是肯定在虚拟机里直接运行的,而后面这些服务可以通过容器的方式运行。
而通过./kubernetes/cluster/get-kube-binaries.sh
的方式下载的binary包,是包含了docker的image的,例如:
[vagrant@k8s-master bin]$ ll *.tar -rw-r--r-- 1 vagrant vagrant 133343232 Apr 12 15:16 cloud-controller-manager.tar -rw-r--r-- 1 vagrant vagrant 58386432 Apr 12 15:16 kube-aggregator.tar -rw-r--r-- 1 vagrant vagrant 225259008 Apr 12 15:16 kube-apiserver.tar -rw-r--r-- 1 vagrant vagrant 148072448 Apr 12 15:16 kube-controller-manager.tar -rw-r--r-- 1 vagrant vagrant 98919936 Apr 12 15:16 kube-proxy.tar -rw-r--r-- 1 vagrant vagrant 50631168 Apr 12 15:16 kube-scheduler.tar
- turn off swap
sudo swapoff -a
free -h 可以检查是否已经把 swap 关掉了
https://blog.csdn.net/ysssssssssssssss/article/details/79596367
解决以下问题:
Error syncing pod, skipping: failed to "StartContainer" for "POD" with RunContainerError: "runContainer: Error response from daemon: {\"message\":\"error creating overlay mount to /var/lib/docker/overlay2/3f2f395dd96f6c95e95aff57abe9222a585ef651b954bdd419b998c033d3beac-init/merged: invalid argument\"}"
构建外部可以访问的服务时,外部访问不了,解决办法
[vagrant@k8s-node1 ~]$ cat /etc/kubernetes/proxy
###
# kubernetes proxy config
# default config should be adequate
# Add your own!
KUBE_PROXY_ARGS="--proxy-mode=userspace"
[vagrant@k8s-node1 ~]$ sudo systemctl restart kube-proxy
3个节点都需要,master上不需要。这篇文章刚好说反了。。。