#查看防火墙状态(两种)
firewall-cmd --state
service firewalld status
#关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
#关闭iptables服务
systemctl stop iptables
systemctl disbale iptables
# 关闭selinux
setenforce 0
swapoff -a
vi /etc/hosts
主机ip地址 自己添加的主机名
yum -y install chrony
systemctl start chronyd
systemctl enable chronyd
#编辑/etc/sysctl.d/kubernetes.conf文件,添加如下配置
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
sysctl -p
modprobe br_netfilter
lsmod | grep br_netfilter
#在kuberbetes中ipvs代理的性能要高于iptables,使用ipvs需要手动载入ipvs模块
yum install ipset ipvsadmin -y
cat < /etc/sysconfig/modules/ipvs.modules
#!/bin/bash
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack_ipv4
EOF
chmod +x /etc/sysconfig/modules/ipvs.modules
/bin/bash /etc/sysconfig/modules/ipvs.modules
1.6.5查看对应的模块是否加载成功
lsmod | grep -e ip_vs -e nf_conntrack_ipv4
reboot
#做完这些后需要进行docker安装具体安装步骤参考这个博客https://blog.csdn.net/qq_61462100/article/details/129589757
#由于Kubernetes的镜像源在国外,速度比较慢,切换成国内的镜像源
#添加kubernetes yum源
cat > /etc/yum.repos.d/kubernetes.repo <
yum install --setopt=obsoletes=0 kubeadm-1.17.4-0 kubelet-1.17.4-0 kubectl-1.17.4-0 -y
#编辑/etc/sysconfig/kubelet,添加下面的配置
KUBELET_CGROUP_ARGS="--cgroup-driver=systemd"
KUBE_PROXY_MODE="ipvs"
systemctl enable kubelet
kubeadm config images list
#由于网络原因无法连接kubernetes仓库我们需要使用国内镜像先下载下来
使用docker命令先搜索下
docker search kube-apiserver
发现有我们需要的镜像并进行拉取
docker pull aiotceo/kube-apiserver:v1.17.4
docker pull aiotceo/kube-controller-manager:v1.17.4
docker pull aiotceo/kube-scheduler:v1.17.4
docker pull aiotceo/kube-proxy:v1.17.4
docker pull aiotceo/pause:3.1
docker pull aiotceo/etcd:3.4.3-0
docker pull aiotceo/coredns:1.6.5
在拉取镜像的时候可能会有某些镜像拉取失败,此时可以用下面这个镜像名
registry.cn-hangzhou.aliyuncs.com/google_containers/
用以取代上面的aiotceo/
查看镜像
docker images
为了让kubeadm程序能找到k8s.gcr.io下面的镜像,需要把镜像名称重新打一下tag
docker tag aiotceo/kube-apiserver:v1.17.4 k8s.gcr.io/kube-apiserver:v1.17.4
docker tag aiotceo/kube-controller-manager:v1.17.4 k8s.gcr.io/kube-controller-manager:v1.17.4
docker tag aiotceo/kube-scheduler:v1.17.4 k8s.gcr.io/kube-scheduler:v1.17.4
docker tag aiotceo/kube-proxy:v1.17.4 k8s.gcr.io/kube-proxy:v1.17.4
docker tag aiotceo/pause:3.1 k8s.gcr.io/pause:3.1
docker tag aiotceo/etcd:3.4.3-0 k8s.gcr.io/etcd:3.4.3-0
docker tag aiotceo/coredns:1.6.5 k8s.gcr.io/coredns:1.6.5
docker pull jmgao1983/flannel:v0.11.0-amd64
docker pull loveone/kubernetes-dashboard-amd64:v1.10.1
kubeadm init \
--kubernetes-version=v1.17.4 \
--pod-network-cidr=10.244.0.0/16 \
--service-cidr=10.96.0.0/12 \
--apiserver-advertise-address=192.168.174.10
需要一点时间,提示successfully即为成功
查看节点信息
kubectl get nodes
###集群初始化中遇到的问题
解决方案:
1.提升虚拟机的cpu资源
2.忽视这条告警错误,加上 --ignore-preflight-errors=all 参数
解决方案:关闭swap分区
解决方案:提高kubeadm版本
[root@hadoop1 ~]# mkdir -p $HOME/.kube
[root@hadoop1 ~]# sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
[root@hadoop1 ~]# sudo chown $(id -u):$(id -g) $HOME/.kube/config
将两个子环境添加到集群中
kubeadm join 192.168.174.10:6443 --token zo5l1r.4cw0a9qx2iamo0e5 \
--discovery-token-ca-cert-hash sha256:3bbbdc3085f93091d689e9c7a3696bfd6e04d22f4fb71c3e3bfe135f6539552c
此时通过kubectl get nodes查看
wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
kubectl apply -f kube-flannel.yml
4.2.3稍等片刻,再次查看集群节点状态
至此,kubernetes集群环境搭建完成
#部署nginx
kubectl create deployment nginx --image=nginx:1.14-alpine
#暴露端口
kubectl expose deployment nginx --port=80 --type=NodePort
#查看服务状态
kubectl get pods,svc
#在电脑上访问nginx服务