安装一台Ubuntu

下载地址

1
http://releases.ubuntu.com/16.04/ubuntu-16.04.7-desktop-amd64.iso.torrent

使用VMware安装一台Ubuntu,修改用户名,重启,然后安装必要工具

1
sudo apt install -y openssh-server net-tools vim curl

添加公钥之后(不需要重启SSH服务)就可以SSH登录了。

在机器上面安装docker

1
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

在机器上面安装kubeadmin

1
2
3
curl -s https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -
echo "deb https://mirrors.aliyun.com/kubernetes/apt/  kubernetes-xenial main" > /etc/apt/sources.list.d/kubernetes.list 
apt update -q && apt install -y apt-transport-https  kubelet kubeadm kubectl

关闭SWAP并重启

1
2
3
4
5
6
7
8
永久关闭swap 
sed -i '/swap/ s/^/#/' /etc/fstab
reboot -h now

---
临时关闭,重启失效swapoff -a 
永久关闭 注释/etc/fstab中swap相关的那一行
不关闭但设为0 echo "vm.swappiness = 0" >> /etc/sysctl.conf && sysctl -p

创建三份克隆

在VMware中 安装一台后,创建两个完整克隆,得到三个VM,分别命名为kmkn1kn2作为k8s集群的一主两从。

初始化master

在作为master的节点上初始化k8s master

1
2
3
4
5
6
7
kubeadm init -v5 --apiserver-advertise-address 192.168.175.134\
        --image-repository registry.cn-hangzhou.aliyuncs.com/google_containers \
        --kubernetes-version 1.21.0 \
        --pod-network-cidr 10.244.0.0/16 \
        --upload-certs
        
// kubeadm init --apiserver-advertise-address 192.168.175.134 --pod-network-cidr 10.244.0.0/16 --image-repository registry.cn-hangzhou.aliyuncs.com/google_containers

如果拉取镜像出现错误

1
…… coredns:v1.8.0: output: Error response from daemon ……

使用以下方式解决报错,解决后重新执行上面的初始化。

1
2
3
4
手工拉取镜像,手动打tag
docker pull coredns/coredns
docker tag coredns/coredns:latest registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:v1.8.0 
docker rmi coredns/coredns:latest

在master上初始化kubectl

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

在master上安装Pod网络

1
2
curl https://docs.projectcalico.org/manifests/canal.yaml -O
kubectl apply -f canal.yaml

初始化node

在两个node节点运行命令加入集群

1
kubeadm join 192.168.175.134:6443 --token xn9qv7.rppl8zj7mayci5ee --discovery-token-ca-cert-hash sha256:95dcb2bf32a5738346b91a9a7f13a2d1167d695fede53a22a0184a39e96a1be4

其他优化

在使用kubectl的节点设置自动补全

1
echo "source <(kubectl completion bash)" >> ~/.bashrc

ubuntu16.04设置固定IP

vim /etc/network/interface

1
2
3
4
5
6
7
auto ens33
iface enp4s1 inet static
address 192.168.175.134
netmask 255.255.255.0
gateway 192.168.175.1
dns-nameserver 114.114.114.114
dns-nameserver 8.8.8.8

service networking restart 测一下配置对不对,reboot生效。没加gateway/dns可能ping不通外网,可以先dhclient。