2023-04-28 18:01:58

k8s搭建集群

1. 关闭firewalld(所有节点)

systemctl stop firewalld //关闭
systemctl disable firewalld //开机禁起

2.关闭swap(所有节点)

sudo swapoff -a

//悠久关闭

sed -ri 's/.*swap.*/#&/' /etc/fstab

3.设置服务器主机hostname每个节点的名称(所有节点)

hostnamectl set-hostname master

//查看名称

hostname

4.设置所有节点host(所有节点)

vi /etc/hosts

192.168.2.4 master
192.168.2.5 node1

5.设置安装源(所有节点)

// 添加 k8s 安装源

cat <<EOF > kubernetes.repo[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
mv kubernetes.repo /etc/yum.repos.d/

// 添加 Docker 安装源 

yum-config-manager--add-repo http://mirrors.aliyun.com/docker-ce/Tinux/centos/docker-ce.repo

6.安装docker和k8s(所有节点)

卸载之前版本

yum remove docker-ce docker-ce-cli containerd.io -y

安装1.22.4版本

yum install kubelet-1.22.4 kubectl-1.22.4  kubeadm-1.22.4 docker-ce-20.10.0 docker-ce-cli-20.10.0 -y

#7.启动k8s和docker(所有节点)

systemctl enable kubelet
systemctl start kubelet
systemctl enable docker
systemctl start docker

#8.修改 docker 配置 (所有节点)

 cat <<EOF > daemon.json
{
  "registry-mirrors": ["https://m1kuyd9u.mirror.aliyuncs.com"],
  "exec-opts": ["native.cgroupdriver=systemd"]
}
EOF

mv daemon.json /etc/docker/

#重启生效
systemctl daemon-reload
systemctl restart docker

9.用 kubeadm 初始化集群 (仅在主节点跑)

kubeadm init --apiserver-advertise-address=192.168.2.7 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version=v1.22.4 --service-cidr=10.96.0.0/12 --pod-network-cidr=10.244.0.0/16 --ignore-preflight-errors=all

记得把 kubeadm join ***保存起来

10.主节点执行

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

主节点执行

scp /etc/kuberentes/admin.conf 需要传输的子节点id:/etc/kuberentes/admin.conf 


//子节点执行


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

查看子节点是否准备好

kubectl get nodes	


把 kubeadm join *** 在子节点执行

然后执行

kubectl apply -f http://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
	
如果还是显示The connection to the server raw.githubusercontent.com was refused - did you specify the right host or port?
执行下面代码

sudo vim /etc/hosts
199.232.28.133 raw.githubusercontent.com


//启动nginx
kubectl run nginx --image=nginx:latest



//查看项目状态
kubectl describe pod/nginx

kubectl get pod -o wide

kubectl port-forward --address 0.0.0.0 pod/nginx 80:80

构件node dockerfile


	FROM node
	ADD /wwwroot/nodejs.tar .gz /root
	WORKDIR /root
	RUN chmod -R 777 nodejs
	WORKDIR /root/nodejs
	EXPOSE 3000
	RUN npm install cnpm -g --registry=https://registry.nlark.com
	RUN cnpm instal1
	CMD node app.js

执行build

docker build -f nodejsDockerfile -t docker.io/itying/nodejsimg:latest .

启动项目

docker run -tid --name nodejs01 -p 8080:8080 itying/nodejsimg	

进入容器测试

docker exec -ti 5a5e526b48df /bin/bash

cur1 127.0.0.1:8080

//liunx打包

set GOOS=linux
set GOARCH=amd64
go build main.go

本文链接:https://blog.kingxues.com/post/k8s.html

-- EOF --