美文网首页
vagrant + ubuntu16.04 搭建 kuberne

vagrant + ubuntu16.04 搭建 kuberne

作者: SlowGO | 来源:发表于2018-12-06 16:57 被阅读0次

创建 vagrant ubuntu 虚机

创建2个虚机,一个 master,一个 worker。

Vagrantfile 模板:

Vagrant.configure("2") do |config|
  config.vm.box = "bento/ubuntu-16.04"
  #config.vm.provision "docker"
  config.vm.hostname = "master"
  config.vm.network "private_network", type: "dhcp"

   config.vm.provider "virtualbox" do |vb|
     vb.memory = "2048"
     vb.cpus = 2
   end
end

分别执行 vagrant up 启动虚机,启动后执行 vagrant ssh 登录。

安装 docker

apt-get update && apt-get install docker.io -y

每台虚机中都安装。

安装 kubelet kubeadm kubectl

# 安装 1.9.6 版本
# 如需安装其他版本,可以查询版本列表:
# curl -s https://packages.cloud.google.com/apt/dists/kubernetes-xenial/main/binary-amd64/Packages | grep Version | awk '{print $2}'

curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - && \
  echo "deb http://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list && \
  sudo apt-get update -q && \
  sudo apt-get install -qy kubelet=1.9.6-00 kubectl=1.9.6-00 kubeadm=1.9.6-00

# 服务自启动
systemctl start docker && systemctl enable docker
systemctl start kubelet && systemctl enable kubelet

# 命令自动提示
echo "source <(kubectl completion bash)" >> ~/.bashrc
source ~/.bashrc

# 准备工作
swapoff -a
sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
sed -i '0,/ExecStart=/s//Environment="KUBELET_EXTRA_ARGS=--cgroup-driver=cgroupfs"\n&/' /etc/systemd/system/kubelet.service.d/10-kubeadm.conf

每台虚机中都安装。

master 中初始化 cluster

# 查看本机 ip 并设置系统变量
ifconfig
IPADDR=172.28.128.8


# 查看本机名称
NODENAME=$(hostname -s)

# 初始化
kubeadm init --apiserver-cert-extra-sans=$IPADDR --apiserver-advertise-address=$IPADDR --node-name $NODENAME

执行完成后会给出提示,执行提示的命令,例如:

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

还会给出 worker 节点加入的命令,例如:

kubeadm join --token ef0914.ef20fb77d714a7fd 172.28.128.9:6443 --discovery-token-ca-cert-hash sha256:b8272dfce74563023bd8ad62a42d3e8aadb3da4cb51940464eb10516fb0f22fd

cluster 创建完成后,需要安装网络:

kubectl apply -f https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')

worker 加入 cluster

执行上面提示的 kubeadm join ...

master 中验证

现在一个最简单的 cluster 已经搭建出来了,下面验证一下。

查看 node 列表:

kubectl get nodes

如果正常,node 的状态都应是 Ready

验证 DNS:

kubectl run -it --image=busybox:1.28.3 --restart=Never dns-test /bin/sh

/ # nslookup kubernetes.default

正常输出类似:

Server: 10.96.0.10 
Address 1: 10.96.0.10 kube-dns.kube-system.svc.cluster.local 
Name: kubernetes.default 
Address 1: 10.96.0.1 kubernetes.default.svc.cluster.local

如果有问题可以通过一个几个命令配合查找问题:

journalctl -f
kubectl describe node xxx
kubectl describe pod xxx
kubectl logs xxx

相关文章

网友评论

      本文标题:vagrant + ubuntu16.04 搭建 kuberne

      本文链接:https://www.haomeiwen.com/subject/gjwocqtx.html