安装一台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,分别命名为km
,kn1
和kn2
作为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。