初始化机器
修改/etc/hosts
sudo vim /etc/hosts
192.168.170.128 k8smaster
192.168.170.129 k8snode
关闭防火墙
#关闭防火墙
sudo ufw disable
#查看防火墙状态
sudo ufw status
关闭swap分区
#禁掉所有的swap分区,临时关闭
sudo swapoff -a
#永久关闭
sed -ri 's/.*swap.*/#&/' /etc/fstab
IPV4流量
#新建/etc/sysctl.d/k8s.conf文件,输入以下内容
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
#执行此命令生效配置
sysctl --system
时间同步
sudo apt install ntpdate
sudo ntpdate time.windows.com
安装docker
卸载旧版本
Docker 的旧版本被称为 docker,docker.io 或 docker-engine 。如果已安装,请卸载它们:
sudo apt-get remove docker docker-engine docker.io containerd runc
设置仓库
更新 apt 包索引。
sudo apt-get update
安装 apt 依赖包,用于通过HTTPS来获取仓库:
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
#添加 Docker 的官方 GPG 密钥:
sudo curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
#使用以下指令设置稳定版仓库
sudo add-apt-repository \
"deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/ \
$(lsb_release -cs) \
stable"
安装 Docker Engine-Community
#更新 apt 包索引。
sudo apt-get update
#查看docker-ce版本
sudo apt-cache madison docker-ce
#下载指定版本
#sudo apt-get install docker-ce=<VERSION_STRING>
sudo apt-get install -y docker-ce=18.06.1~ce~3-0~ubuntu
修改docker镜像源
#新建/etc/docker/daemon.json文件
sudo vim /etc/docker/daemon.json
//加入以下内容
{
"exec-opts": [
"native.cgroupdriver=systemd"
],
"registry-mirrors": [
"https://z4bisnxm.mirror.aliyuncs.com",
"https://docker.mirrors.ustc.edu.cn/",
"https://hub-mirror.c.163.com/"
]
}
#重新加载系统服务
sudo systemctl daemon-reload
#设置开机自启动
sudo systemctl enable docker
#重启docker服务
sudo systemctl restart docker
#查看docker的镜像源是否为所设置的
sudo docker info
安装kubeadm、kubelet、kubectl
添加k8s阿里源
sudo curl -s https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add -
#新建/etc/apt/sources.list.d/kubernetes.list文件,并加入下面的内容
sudo vim /etc/apt/sources.list.d/kubernetes.list
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
#更新kubernetes镜像源
sudo apt update
#下载指定版本
sudo apt install kubelet=1.18.0-00 kubeadm=1.18.0-00 kubectl=1.18.0-00
# apt-mark hold 安装标记 防止版本自动更新
sudo apt-mark hold kubelet=1.18.0-00 kubeadm=1.18.0-00 kubectl=1.18.0-00
#在k8smaster上执行
sudo kubeadm init \
--apiserver-advertise-address=192.168.170.128 \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.18.0 \
--service-cidr=10.96.0.0/12 \
--pod-network-cidr=10.244.0.0/16 \
--ignore-preflight-errors=all
#执行kubeadm init之后控制台中就会输出以下信息
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
sudo kubeadm join 192.168.170.128:6443 --token 7loxhs.v569uzdecgmbq7mc \
--discovery-token-ca-cert-hash sha256:52e36be1c7427430a34b7016d1722148ab89ffff3c9883943967e08be5261f6a
#在master节点上执行
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
#在k8snode上执行
sudo kubeadm join 192.168.170.128:6443 --token 7loxhs.v569uzdecgmbq7mc \
--discovery-token-ca-cert-hash sha256:52e36be1c7427430a34b7016d1722148ab89ffff3c9883943967e08be5261f6a
配置cni网络插件
新建flannel.yml文件,并加入以下内容
#文件内容由网络下载可得
#然后执行,应用cni配置
sudo kubectl apply -f flannel.yml
测试k8s
sudo kubectl create deployment nginx --image=nginx
sudo kubectl expose deployment nginx --port=80 --type=NodePort
sudo kubectl get pod,svc
#查看状态等待拉取nginx镜像
sudo kubectl get pod