本文介绍如何使用Kubeadm建立一个3台机器的集群,并部署私有docker registry
1. 局域网搭建cluster
目标:使用3台ubuntu机器,组建kubernetes cluster,一个master node,两个worker node
1.1 创建3台ubuntu虚拟机
步骤略。。。
假设master的ip是10.97.170.98
另外两台机器ip是10.97.170.101, 10.97.170.102
1.2 安装docker以及kubenetes命令行工具
1-5步需要在3台机器上都要运行,6-7在master上运行,8在另外两台worker上运行
- 更新package list
sudo apt update
- 安装并启动docker
sudo apt-get install docker.io
sudo systemctl enable docker
- 添加Kubernetes安装源
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add
sudo apt-add-repository "deb http://apt.kubernetes.io/ kubernetes-xenial main"
- 安装kubernetes以及相关命令行工具,包括kubeadm kubelet kubectl
sudo apt-get install kubeadm kubelet kubectl
- 禁用swap
sudo swapoff –a
- 更改hostname和hosts文件
sudo hostnamectl set-hostname master-node
sudo vi /etc/host
#添加127.0.0.1 master-node
- 初始化集群
sudo kubeadm init --pod-network-cidr=10.244.0.0/16
#结尾会有kubeadm join的message出现,拷贝这句在第8步中使用
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
#$HOME/.kube/config这个文件拷贝到客户机$HOME/.kube, 即可连接cluster
- 在所有worker nodes上运行第7步sudo kubeadm init运行出现的kubeadm join mesage
sudo kubeadm join 10.97.170.98:6443 --token h4m1kj.cbpznh42udr4rn75 --discovery-token-ca-cert-hash sha256:a8d4ade55f024258d8e61e7472e1ae45ea3afe3167c2aa25a8e5cc54d24ddd04
2. 配置本地docker registry
- 在局域网任意一台机器上运行,我们的例子在10.97.170.98上运行
docker run -d -p 5000:5000 --restart=always --name registry registry:2
- 在另外2台节点机器上创建或者更新/etc/docker/daemon.json.
{
"insecure-registries" : ["10.97.170.98:5000"]
}
- 用如下网址可以查看docker registry里面images的情况
http://10.97.170.98:5000/v2/_catalog
http://10.97.170.98:5000/v2/<imageName>/tags/list
3. 部署并建立服务
- 将1.2第7步中获取到的config文件,拷贝到你本地机器$HOME/.kube目录
- 运行kubectl cluster-info验证是否能连上cluster
C:\Users\wangn>kubectl cluster-info
Kubernetes master is running at https://10.97.170.98:6443
KubeDNS is running at https://10.97.170.98:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
- 将创建服务所需要的images push到10.97.170.98:5000
docker build myproject .
docker tag myproject 10.97.170.98:5000/myproject
docker push 10.97.170.98:5000/myproject
- 创建部署yaml文件,部署image到cluster
kubectl apply -f my-deploy.yaml
- 创建服务yaml文件,生成服务
kubectl apply -f my-service.yaml
网友评论