1.初始化配置
1)关闭防火墙(所有机器都要做)
systemctl stop firewalld
systemctl disable firewalld
2)关闭selinux(所有机器都要做)
sed -i ‘s/enforcing/disabled/‘ /etc/selinux/config
3)关闭swap(所有机器都要做)
sed -ri ‘s/.swap./#&/‘ /etc/fstab
4)设置主机名(所有机器都要做)
hostnamectl set-hostname master
hostnamectl set-hostname node1
hostnamectl set-hostname node2
5)添加hosts(所有机器都要做)
在/etc/hosts文件中增加集群信息的解析
6)网络改造(所有机器都要做)
cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl –system ###生效
7)最好做下时间同步(所有机器都要做)
yum install ntpdate -y
ntpdate time.windows.com
8)更换yum源删除原来的所有repo文件,将所有yum源换成阿里云(所有机器都要做)
** 文件在尾部附件当中 **
9)安装相关软件(所有机器都要做)
安装docker
unzip docker.zip
cd others
rpm -ivh * –nodeps –force
systemctl enable docker && systemctl start docker
yum install -y kubelet-1.23.0 kubeadm-1.23.0 kubectl-1.23.0
systemctl enable kubelet
10)docker更改相关配置(所有机器都要做)
放在/etc/docker/目录下
以上初始化的就完成了,完成以后重启一下服务器。接下来的只需要在master机器执行
2.部署k8s-master(master机器做)
1)kubeadm init \
–apiserver-advertise-address=192.168.10.111
–image-repository registry.aliyuncs.com/google_containers
–kubernetes-version v1.22.0
–service-cidr=10.96.0.0/12
–pod-network-cidr=10.244.0.0/16
–ignore-preflight-errors=all
这里的ip需要更换成master的ip
2)按照提示执行命令:(master机器做)
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
vi /etc/profile
export KUBECONFIG=/etc/kubernetes/admin.conf(node节点也要执行该命令,写到环境变量的文件里/etc/profile)
3)加入node节点(node机器做,master不需要)
kubeadm join XXXXXXXXX
scp /etc/kubernetes/admin.conf root@192.168.10.91:/etc/kubernetes/(master上执行,ip为node ip)
4)安装网络插件(master机器做)
修改里面定义Pod网络(CALICO_IPV4POOL_CIDR)的字段,与前面kubeadm init的 –pod-network-cidr指定的一样。
kubectl create -f calico.yaml
pod:k8s中最小的资源单位
kubectl get pod/po 查看pod(默认命名空间下的)
NAMESPACE(命名空间) 资源隔离
kubectl create ns test 创建一个命名空间叫test
-n 指定命名空间
kubectl run nginx –image=nginx -ntest
kubectl get po -ntest
-A 查看所有命名空间下的pod
-owide 查看详细信息
kubectl create deployment nginx –image=nginx –replicas=5 -ndev 在dev下创建nginx的deployment,并设置为5个副本
kubectl delete
kubectl describe 查看详细信息
1.创建一个pod,pod的名字是demo-1,用的镜像是tomcat;
2.创建一个命名空间dev,并在该命名空间下创建pod叫nginx,用的镜像是nginx:1.18;
3.一次删除default命名空间下的所有pod;
kubectl get po |awk ‘NR>1{print $1}’|xargs kubectl delete po
kubectl delete po kubectl get po |awk 'NR>1{print $1}'
4.查看k8s集群中某个pod用的是什么镜像?
kubectl describe po nginx-85b98978db-8mzsg|grep Image
创建一个资源,资源里有5个副本,用的镜像是nginx,并且浏览器能够访问
1.deployment
2.暴露端口
3.查看相关信息访问
以自己名字新命名一个命名空间,并在下面创建一个pod和一个3个副本的deploy
kubectl create ns yc
kubectl run web –image=nginx -nyc
kubectl create deploy nginx –image=nginx -nyc
kubectl get po -nyc
运维
变更:
1.版本升级
2.bug修复
nginx-85b98978db-8zhvq 1/1 Running 0 4h2m
nginx-85b98978db-d2j5h 1/1 Running 0 4h2m
nginx-85b98978db-s6nqs 1/1 Running 0 4h2m
nginx-7df89766b4-vs9vq 0/1 Pending 0 0s
nginx-7df89766b4-vs9vq 0/1 Pending 0 0s
nginx-7df89766b4-vs9vq 0/1 ContainerCreating 0 0s
nginx-7df89766b4-vs9vq 0/1 ContainerCreating 0 3s
nginx-7df89766b4-vs9vq 1/1 Running 0 20s
nginx-85b98978db-s6nqs 1/1 Terminating 0 4h3m
nginx-7df89766b4-4fscr 1/1 Running 0 4s
nginx-7df89766b4-2rqth 0/1 Pending 0 0s
nginx-7df89766b4-2rqth 0/1 Pending 0 0s
nginx-7df89766b4-2rqth 1/1 Running 0 20s
新建一个deploy名字web ,提供网页服务(nginx),副本数为3
3个副本所使用镜像版本不同(1.16 1.18 1.21),暴露端口,
通过curl命令访问,会出现不同的版本号
最后编辑:严锋 更新时间:2025-05-09 15:48