K8S 发布应用

前言

昨儿个用 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: nginx
    imagePullPolicy: Always
    name: nginx
    ports:  
    - containerPort: 80
      protocol: TCP
    resources: {}

#终止,并新建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

K8S 发布应用_第1张图片

#通过集群IP访问 welcome 页面
curl 10.99.250.234:80
#通过endpoint访问 welcome 页面
curl 192.10.1.169:80


kubectl get deployment nginx

#拓展至3个副本
kubectl scale deployment nginx --replicas=3

kubectl get deployment nginx

#拓展后会看到,现在有3个 endpoint
kubectl get ep nginx

kubectl get pod -o wide

kubectl delete pod nginx-7c5ddbdf54-vnzhr

kubectl get po

#发现 endpoint IP改变了,原来的 endpoint 被删除了
kubectl get ep nginx

#再次测试,发现一切正常
curl 10.99.250.234:80
curl 192.10.1.169:80

K8S 发布应用_第2张图片

你可能感兴趣的:(云原生,kubernetes,容器,云原生)