环境配置 - VMware
- km - 2cpu - 4g内存 - ip - 192.168.23.39
- node1 - 2cpu - 2G内存 - ip - 192.168.23.40
- node1 - 2cpu - 2G内存 - ip - 192.168.23.41
安装kubernetes
- 非特别说明都是3台机器同时操作
- 所有操作基于官方文档说明
1.关闭防火墙
systemctl stop firewalld && systemctl disable firewalld
2.禁用交换分区
swapoff -a
vim /etc/fstab - 注释最后一行
3.增加host
echo "192.168.23.39 km" >> /etc/hosts
echo "192.168.23.40 kn1" >> /etc/hosts
echo "192.168.23.41 kn2" >> /etc/hosts
4.安装kubectl
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
5.设置网桥参数 - 允许 iptables 检查桥接流量
cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
br_netfilter
EOF
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sudo sysctl --system
6.安装docker - 注:centos默认yum源版本过低,无法使用
yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
yum install -y yum-utils
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install -y docker-ce docker-ce-cli containerd.io
mkdir /etc/docker
cat <<EOF | sudo tee /etc/docker/daemon.json
{
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2"
}
EOF
systemctl enable docker && systemctl daemon-reload && systemctl start docker
7.安装 kubeadm、kubelet 和 kubectl - 使用阿里云源
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
sudo setenforce 0
sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
sudo yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
sudo systemctl enable --now kubelet
8.初始化kubeadm - 只在master上用 - 使用阿里云源
kubeadm config images pull --image-repository registry.aliyuncs.com/google_containers
kubeadm init --image-repository=registry.aliyuncs.com/google_containers --pod-network-cidr 10.244.0.0/16
- 等待出现类似如下提示
kubeadm join 192.168.23.39:6443 --token uls8na.09040heqbwbk7e7u \ --discovery-token-ca-cert-hash sha256:e0a2baba820581f76434dfd5b68011ce2ed2e644bb50dd73cd84bdeca00bce52
9.安装 Pod 网络附加组件 - 建议kube-flannel.yml - 只在master上用
wget https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube-flannel.yml
kubectl apply -f kube-flannel.yml
10.node加入结束 - 只在node节点使用上用 - 8中最后提示
kubeadm join 192.168.23.39:6443 --token uls8na.09040heqbwbk7e7u --discovery-token-ca-cert-hash sha256:e0a2baba820581f76434dfd5b68011ce2ed2e644bb50dd73cd84bdeca00bce52
简单命令
kubectl get nodes
kubectl get pods --all-namespaces
kubectl logs podName -n NameSpaceName