前言
昨儿个用 unbuntu20.04 又装了一次K8S
用的 kubeadm + containerd + Cilium (CNI)
又重新撸了一遍
这里只记录 应用发布的笔记
正文
#创建deployment
kubectl create deployment nginx --image=nginx
#我这边大约30秒后显示为 ready
kubectl get deployments
kubectl describe deployment nginx#查看操作步骤
#1.创建pod 2.将pod分配给worker节点 3.伸缩ReplicaSet到指定数量
#4.拉取nginx镜像 5.创建nginx容器 6.拉取镜像成功后运行容器
kubectl get events --sort-by='.metadata.creationTimestamp'#查看yaml - 它可以用来重新创建这个deployment
kubectl get deployment nginx -o yaml#输出这个yaml,修改配置后重新创建 deployment
kubectl get deployment nginx -o yaml > first.yaml
#编辑yaml配置文件,移除 creationTimestamp 这一行
vim first.yaml#删除后重新创建
kubectl delete deployment nginx
kubectl create -f first.yaml#文件对比
kubectl get deployment nginx -o yaml > second.yaml
diff first.yaml second.yaml#--dry-run=client 模拟执行命令,但不真的创建资源 -> 生成yaml文件
kubectl create deployment two --image=nginx --dry-run=client -o yaml#通过yaml输出查看已存在的对象
kubectl get deployments nginx -o yaml
#通过JSON查看
kubectl get deployment nginx -o json#查看帮助 -> 需要创建一个service来暴露nginx的web页面
kubectl expose -h#未指定端口
weiheng@weihengcp:/data/work/yaml$ kubectl expose deployment/nginx
'error: couldn't find port via --port flag or introspection#修改配置文件后,可以使用 apply , edit or patch 做无中断更新
#如果出现无法更新的资源字段,可强制执行 --force
#现在修改配置,添加端口信息
vim first.yaml
#添加 ports 配置,暴露端口
spec:containers:- image: nginximagePullPolicy: Alwaysname: nginxports: - containerPort: 80protocol: TCPresources: {}#终止,并新建deployment
kubectl replace -f first.yaml --force#查看
kubectl get deploy,pod#暴露资源 again -> 创建service
kubectl expose deployment/nginx#查看service配置
kubectl get svc nginx
#查看 kubelet 和 kube-proxy 提供的 endpoint
kubectl get ep nginx
#通过集群IP访问 welcome 页面
curl 10.99.250.234:80
#通过endpoint访问 welcome 页面
curl 192.10.1.169:80kubectl get deployment nginx#拓展至3个副本
kubectl scale deployment nginx --replicas=3kubectl get deployment nginx#拓展后会看到,现在有3个 endpoint
kubectl get ep nginxkubectl get pod -o widekubectl delete pod nginx-7c5ddbdf54-vnzhrkubectl get po#发现 endpoint IP改变了,原来的 endpoint 被删除了
kubectl get ep nginx#再次测试,发现一切正常
curl 10.99.250.234:80
curl 192.10.1.169:80