安装版本总览:
1、Ubuntu20.04 LTS
2、kubernets 1.21.0
3、Calico 3.19.1
集群配置:
主机名 | 角色 | ip |
master | 主节点 | 192.168.16.102 |
slave-1 | 从节点 | 192.168.16.101 |
slave-2 | 从节点 | 192.168.16.100 |
准备工作:
1、关闭交换空间并永久生效
swapoff -a
/etc/fstab 注释12行
2、关闭防火墙
ufw disable
3、配置DNS
vi /etc/systemd/resolved.conf
4、安装docker
#更新源:sudo apt-get update
#安装所需依赖:
apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
#添加 Docker 的官方 GPG 密钥:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
#新增软件源信息:
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu yakkety stable"
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu yakkety $(lsb_release -cs) stable"
#再次更新源:sudo apt-get update
#安装docker ce版:
sudo apt-get install docker-ce
#配置docker加速器:
阿里云免费镜像加速:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
/etc/docker/daemon.json
{
"registry-mirrors": [
"https://xxxx.mirror.aliyuncs.com", // 根据上面链接使用自己的镜像
"https://registry.docker-cn.com"
]
}
参考链接:https://www.cnblogs.com/songxi/p/12788249.html
5、安装Kubernetes工具
#安装系统工具:
apt-get update && apt-get install apt-transport-https
#添加 Kubernetes的官方 GPG 密钥:
curl -fsSL http://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -
#写入软件源:
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-yakkety main
EOF
#安装:
apt-get update && apt-get install -y kubelet kubeadm kubectl
6、同步时间
#同步时区:
dpkg-reconfigure tzdata
#安装ntp和同步时间:
apt-get install ntpdate
ntpdate cn.pool.ntp.org
#将系统时间写入硬件时间:
hwclock --systohc
7、配置静态ip(会导致虚拟机无法联网)
注意:配置静态ip会导致虚拟机无法联网,未配置静态ip情况下,重启虚拟机,ip未发生变化,因此在实际操作中,未配置静态ip
#配置ip:
vi /etc/netplan/01-network-manager-all.yaml
添加:
ethernets:
ens33: // 使用ip a获取网卡名称
addresses:
- 192.168.16.110/24
gateway4: 192.168.1.1
nameservers:
addresses: [114.114.114.114]
#配置ip生效:sudo netplan apply
8、修改主机名,编辑/etc/hosts
#重启虚拟机
8. 在VMWare克隆虚拟机
集群安装:
1. 在主节点配置kuberbetes
#导出配置文件到新建目录:/usr/local/kubernetes/cluster
kubeadm config print init-defaults --kubeconfig ClusterConfiguration > kubeadm.yml
#修改配置
advertiseAddress: {本机ip}
imageRepository: registry.cn-hangzhou.aliyuncs.com
name: {本地主机名}
#增加podSubnet
podSubnet: "10.244.0.0/16" -- 不能和主机ip网段一致,避免和calico的虚拟网段重叠
#查看所需镜像
kubeadm config images list --config kubeadm.yml
#拉取镜像
kubeadm config images pull --config kubeadm.yml
解决coredns:v1.8.0无法拉取问题:
docker pull coredns/coredns:1.8.0
docker tag coredns/coredns:1.8.0 registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:v1.8.0
参考资料:https://my.oschina.net/u/131940/blog/5058471
#安装主节点
kubeadm init --config=kubeadm.yml --upload-certs | tee kubeadm-init.log
To start using your cluster, you need to run the following as a regular user:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
Alternatively, if you are the root user, you can run:
export KUBECONFIG=/etc/kubernetes/admin.conf
You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
https://kubernetes.io/docs/concepts/cluster-administration/addons/
Then you can join any number of worker nodes by running the following on each as root:
kubeadm join 192.168.16.102:6443 --token abcdef.0123456789abcdef \
--discovery-token-ca-cert-hash sha256:5e5ca33b30ed811eef0d3433a8809ec1defedfb09df34b918f28f17073eee313
2.按照上一步提示操作,在slave节点执行命令加入到kube集群
在master节点使用普通用户:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
修改/etc/profile文件,在最后一行添加:
export KUBECONFIG=/etc/kubernetes/admin.conf
source /etc/profile
在slave节点执行:
kubeadm join 192.168.16.102:6443 --token abcdef.0123456789abcdef \
--discovery-token-ca-cert-hash sha256:5e5ca33b30ed811eef0d3433a8809ec1defedfb09df34b918f28f17073eee313
#查看集群:
kubectl get node
补充(如有需要):
如果上述步骤配置错误,想重置kube:
1、在salve和master节点:kubeadm reset
2、在主节点:kubeadm init --config=/usr/local/kubernetes/cluster/kubeadm.yml --upload-certs | tee kubeadm-init.log
3、按照10步中,方式将slave节点加入到kube集群
3.安装calico:
参考官方指导安装单节点kube集群:
https://docs.projectcalico.org/getting-started/kubernetes/quickstart
1、安装Calico operate和自定义资源
kubectl create -f https://docs.projectcalico.org/manifests/tigera-operator.yaml
2、下载和修改文件custom-resources.yaml,安装Calico:
wget https://docs.projectcalico.org/manifests/custom-resources.yaml
修改cidr: 10.244.0.0/16
kubectl create -f custom-resources.yaml
3、确认所有 pod 都在运行
watch kubectl get pods -n calico-system
watch kubectl get pods -n kube-system
4.当创建单机版的 k8s 时,这个时候 master 节点是默认不允许调度 pod 的,需要执行命令将 master 标记为可调度。去除master污点
kubectl taint nodes --all node-role.kubernetes.io/master-
5. kubectl get nodes -o wide
6.kubectl get pods --all-namespaces