<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>https://wiki.linuxsa.org/index.php?action=history&amp;feed=atom&amp;title=K8s%E5%9F%BA%E7%A1%80</id>
	<title>K8s基础 - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.linuxsa.org/index.php?action=history&amp;feed=atom&amp;title=K8s%E5%9F%BA%E7%A1%80"/>
	<link rel="alternate" type="text/html" href="https://wiki.linuxsa.org/index.php?title=K8s%E5%9F%BA%E7%A1%80&amp;action=history"/>
	<updated>2026-04-20T11:13:25Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://wiki.linuxsa.org/index.php?title=K8s%E5%9F%BA%E7%A1%80&amp;diff=527&amp;oldid=prev</id>
		<title>Evan：​/* references */</title>
		<link rel="alternate" type="text/html" href="https://wiki.linuxsa.org/index.php?title=K8s%E5%9F%BA%E7%A1%80&amp;diff=527&amp;oldid=prev"/>
		<updated>2025-06-10T14:13:45Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;references&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;
=base=&lt;br /&gt;
[[K8s应用#2022]]&lt;br /&gt;
&lt;br /&gt;
[[Rancher基础]]&lt;br /&gt;
 #使用glusterfs做存储，不懂glusterfs的请参考其他文章&lt;br /&gt;
&lt;br /&gt;
==命名空间 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.jianshu.com/p/66a963a646f7 k8s实战示例1：创建命名空间和简单pod]&lt;br /&gt;
&lt;br /&gt;
== 容器==&lt;br /&gt;
&lt;br /&gt;
=== 临时容器===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
root@ubuntu-200430-1:~# kubectl create deployment nginx-deployment --image=nginx:1.25.2-alpine &lt;br /&gt;
deployment.apps/nginx-deployment created&lt;br /&gt;
root@ubuntu-200430-1:~# kubectl get deploy&lt;br /&gt;
NAME               READY   UP-TO-DATE   AVAILABLE   AGE&lt;br /&gt;
nginx-deployment   0/1     1            0           11s&lt;br /&gt;
&lt;br /&gt;
root@ubuntu-200430-1:~# kubectl get pod &lt;br /&gt;
NAME                                READY   STATUS    RESTARTS   AGE&lt;br /&gt;
nginx-deployment-574699d69d-ggwl5   1/1     Running   0          3m55s&lt;br /&gt;
root@ubuntu-200430-1:~# kubectl debug -it pods/nginx-deployment-574699d69d-ggwl5 --image=busybox&lt;br /&gt;
Defaulting debug container name to debugger-5nbhj.&lt;br /&gt;
&lt;br /&gt;
/ # ping linuxsa.org &lt;br /&gt;
PING linuxsa.org (104.21.72.8): 56 data bytes&lt;br /&gt;
64 bytes from 104.21.72.8: seq=1 ttl=51 time=322.350 ms&lt;br /&gt;
&lt;br /&gt;
root@ubuntu-200430-1:~#  kubectl describe pods  nginx-deployment-574699d69d-ggwl5&lt;br /&gt;
Name:         nginx-deployment-574699d69d-ggwl5&lt;br /&gt;
Namespace:    cicd&lt;br /&gt;
Priority:     0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ephemeral Containers:&lt;br /&gt;
  debugger-5nbhj:&lt;br /&gt;
    Container ID:   containerd://1996b57d36c4a8a8c632e9a5e37dc732231abae65e47dbc95d1fac400399c253&lt;br /&gt;
    Image:          busybox&lt;br /&gt;
    Image ID:       docker.io/library/busybox@sha256:3fbc632167424a6d997e74f52b878d7cc478225cffac6bc977eedfe51c7f4e79&lt;br /&gt;
    Port:           &amp;lt;none&amp;gt;&lt;br /&gt;
    Host Port:      &amp;lt;none&amp;gt;&lt;br /&gt;
    State:          Terminated&lt;br /&gt;
      Reason:       Error&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
与临时容器共享进程命名空间&lt;br /&gt;
&lt;br /&gt;
进程命名空间共享一直是一个很好的故障排查选项，此功能可用于临时容器。进程命名空间共享不能应用于现有容器，因此必须创建目标容器的副本。 –share-processesflag 在与 –copy-to 一起使用时，可实现进程命名空间共享。这些标志将现有的 Pod spec定义复制到新定义中，并在spec中启用了进程命名空间共享。&lt;br /&gt;
&lt;br /&gt;
$ kubectl debug -it &amp;lt;POD_NAME&amp;gt; --image=busybox --share-processes --copy-to=debug-pod&lt;br /&gt;
&lt;br /&gt;
运行 ps 命令以查看正在运行的进程。 正如您所期望的那样，您可以从 busybox 容器中看到 /pause，从 nginx-deployment 容器中看到 nginx 进程。&lt;br /&gt;
/ # ps aux &lt;br /&gt;
PID   USER     TIME  COMMAND&lt;br /&gt;
    1 65535     0:00 /pause&lt;br /&gt;
    7 root      0:00 nginx: master process nginx -g daemon off;&lt;br /&gt;
   35 101       0:00 nginx: worker process&lt;br /&gt;
   36 101       0:00 nginx: worker process&lt;br /&gt;
   37 101       0:00 nginx: worker process&lt;br /&gt;
   38 101       0:00 nginx: worker process&lt;br /&gt;
   39 root      0:00 sh&lt;br /&gt;
   46 root      0:00 ps aux&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[https://lixianwa.github.io/posts/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8kubernetes%E4%B8%B4%E6%97%B6%E5%AE%B9%E5%99%A8%E8%BF%9B%E8%A1%8C%E6%95%85%E9%9A%9C%E6%8E%92%E6%9F%A5/ 如何使用Kubernetes临时容器进行故障排查]&lt;br /&gt;
&lt;br /&gt;
== label==&lt;br /&gt;
=== 给节点打标签label===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ubuntu-200470-1:~/pod# kubectl get node &lt;br /&gt;
NAME     STATUS   ROLES           AGE   VERSION&lt;br /&gt;
master   Ready    control-plane   22d   v1.24.10&lt;br /&gt;
work1    Ready    &amp;lt;none&amp;gt;          22d   v1.24.10&lt;br /&gt;
work2    Ready    &amp;lt;none&amp;gt;          22d   v1.24.10&lt;br /&gt;
&lt;br /&gt;
#给节点1 work1打上 nodename=node01&lt;br /&gt;
root@ubuntu-200470-1:~/pod# kubectl  label  nodes  work1  nodename=node01&lt;br /&gt;
node/work1 labeled&lt;br /&gt;
&lt;br /&gt;
#查看效果&lt;br /&gt;
root@ubuntu-200470-1:~/pod# kubectl get node --show-labels=true&lt;br /&gt;
NAME     STATUS   ROLES           AGE   VERSION    LABELS&lt;br /&gt;
master   Ready    control-plane   22d   v1.24.10   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=master,kubernetes.io/os=linux,node-role.kubernetes.io/control-plane=,node.kubernetes.io/exclude-from-external-load-balancers=&lt;br /&gt;
work1    Ready    &amp;lt;none&amp;gt;          22d   v1.24.10   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=work1,kubernetes.io/os=linux,nodename=node01&lt;br /&gt;
work2    Ready    &amp;lt;none&amp;gt;          22d   v1.24.10   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=work2,kubernetes.io/os=linux&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#使用 例如在dp &lt;br /&gt;
apiVersion: apps/v1&lt;br /&gt;
kind: Deployment&lt;br /&gt;
metadata:&lt;br /&gt;
  name: dep-nginx-sel-node&lt;br /&gt;
      &lt;br /&gt;
spec:&lt;br /&gt;
  replicas: 1&lt;br /&gt;
  selector:&lt;br /&gt;
    matchLabels:&lt;br /&gt;
      app: nginx&lt;br /&gt;
     &lt;br /&gt;
  template:&lt;br /&gt;
    metadata:&lt;br /&gt;
      labels:&lt;br /&gt;
        app: nginx&lt;br /&gt;
        ver: beta&lt;br /&gt;
    spec:&lt;br /&gt;
      containers:&lt;br /&gt;
      - name: nginx&lt;br /&gt;
        image: nginx:1.25.2-alpine&lt;br /&gt;
        imagePullPolicy: IfNotPresent&lt;br /&gt;
      nodeSelector:&lt;br /&gt;
        nodename: node01&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== label svc===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
oot@ubuntu-200470-1:~/oct19# kubectl  get svc nginx --show-labels &lt;br /&gt;
NAME    TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE     LABELS&lt;br /&gt;
nginx   ClusterIP   None         &amp;lt;none&amp;gt;        80/TCP    6h15m   app=nginxlabelstest&lt;br /&gt;
root@ubuntu-200470-1:~/oct19# kubectl  label svc nginx   version=1&lt;br /&gt;
service/nginx labeled&lt;br /&gt;
root@ubuntu-200470-1:~/oct19# kubectl  get svc nginx --show-labels &lt;br /&gt;
NAME    TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE     LABELS&lt;br /&gt;
nginx   ClusterIP   None         &amp;lt;none&amp;gt;        80/TCP    6h15m   app=nginxlabelstest,version=1&lt;br /&gt;
root@ubuntu-200470-1:~/oct19# kubectl  label svc nginx   version-&lt;br /&gt;
service/nginx unlabeled&lt;br /&gt;
root@ubuntu-200470-1:~/oct19# kubectl  get svc nginx --show-labels &lt;br /&gt;
NAME    TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE     LABELS&lt;br /&gt;
nginx   ClusterIP   None         &amp;lt;none&amp;gt;        80/TCP    6h16m   app=nginxlabelstest&lt;br /&gt;
root@ubuntu-200470-1:~/oct19# &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==k8s 配置管理  == &lt;br /&gt;
===configmap ===&lt;br /&gt;
&lt;br /&gt;
====ConfigMap 存储 Nginx 配置文件 ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#创建并查看ConfigMap&lt;br /&gt;
cat  my-nginx.yaml &lt;br /&gt;
apiVersion: apps/v1&lt;br /&gt;
kind: Deployment &lt;br /&gt;
metadata:&lt;br /&gt;
  name: my-nginx &lt;br /&gt;
spec:&lt;br /&gt;
  replicas: 1 &lt;br /&gt;
  selector:&lt;br /&gt;
    matchLabels:&lt;br /&gt;
      app: nginx &lt;br /&gt;
  template:&lt;br /&gt;
    metadata:&lt;br /&gt;
      labels:&lt;br /&gt;
        app: nginx &lt;br /&gt;
    spec:&lt;br /&gt;
      containers:&lt;br /&gt;
      - name: nginx &lt;br /&gt;
        image: nginx:1.25.2-alpine&lt;br /&gt;
        imagePullPolicy: IfNotPresent  &lt;br /&gt;
        ports:&lt;br /&gt;
        - containerPort: 80&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#在k8s集群拉起一个nginx的pod并加载ConfigMap，通过默认8080去访问。&lt;br /&gt;
&lt;br /&gt;
编写nginx的yaml文件，并加载ConfigMap&lt;br /&gt;
root@ubuntu-200470-1:~/oct21# cat my-nginx-cm.yaml &lt;br /&gt;
apiVersion: apps/v1&lt;br /&gt;
kind: Deployment &lt;br /&gt;
metadata:&lt;br /&gt;
  name: my-nginx &lt;br /&gt;
spec:&lt;br /&gt;
  replicas: 1 &lt;br /&gt;
  selector:&lt;br /&gt;
    matchLabels:&lt;br /&gt;
      app: nginx &lt;br /&gt;
  template:&lt;br /&gt;
    metadata:&lt;br /&gt;
      labels:&lt;br /&gt;
        app: nginx &lt;br /&gt;
    spec:&lt;br /&gt;
      containers:&lt;br /&gt;
      - name: nginx &lt;br /&gt;
        image: nginx:1.25.2-alpine&lt;br /&gt;
        imagePullPolicy: IfNotPresent  &lt;br /&gt;
        ports:&lt;br /&gt;
        - containerPort: 80&lt;br /&gt;
        volumeMounts:&lt;br /&gt;
        - name: config-volume &lt;br /&gt;
          mountPath: /etc/nginx/conf.d&lt;br /&gt;
      volumes:&lt;br /&gt;
      - name: config-volume &lt;br /&gt;
        configMap:&lt;br /&gt;
          name: nginx-conf&lt;br /&gt;
root@ubuntu-200470-1:~/oct21# kubectl apply -f  my-nginx-cm.yaml &lt;br /&gt;
deployment.apps/my-nginx configured&lt;br /&gt;
root@ubuntu-200470-1:~/oct21# kubectl get pod &lt;br /&gt;
NAME                                  READY   STATUS                       RESTARTS          AGE&lt;br /&gt;
dapi-test-pod                         0/1     Completed                    0                 30h&lt;br /&gt;
env-valuefrom-64956864d6-sh7hb        0/1     CrashLoopBackOff             138 (3m48s ago)   30h&lt;br /&gt;
laravel-deployment-5b44dcf689-lvkhp   1/1     Running                      3 (95m ago)       3d9h&lt;br /&gt;
my-nginx-7678bcdf4c-qbl6b             1/1     Running                      0                 15s&lt;br /&gt;
mydep-759989964c-tdf5l                1/1     Running                      3 (94m ago)       3d6h&lt;br /&gt;
mypod                                 1/1     Running                      1 (91m ago)       29h&lt;br /&gt;
mypod2                                1/1     Running                      1 (95m ago)       29h&lt;br /&gt;
mysql-deploy-7fdd46c697-4r842         0/1     CreateContainerConfigError   0                 3d9h&lt;br /&gt;
nginx-deployment-89857df9d-4m8kl      1/1     Running                      2 (91m ago)       2d6h&lt;br /&gt;
nginx-deployment-89857df9d-fcqm5      1/1     Running                      2 (95m ago)       2d6h&lt;br /&gt;
nginx-deployment-89857df9d-gwdql      1/1     Running                      2 (94m ago)       2d6h&lt;br /&gt;
nginx-deployment-89857df9d-kg595      1/1     Running                      2 (95m ago)       2d6h&lt;br /&gt;
nginx-deployment-89857df9d-nbqhm      1/1     Running                      2 (90m ago)       2d6h&lt;br /&gt;
secret-env-pod                        0/1     Unknown                      0                 29h&lt;br /&gt;
web-0                                 1/1     Running                      2 (91m ago)       2d5h&lt;br /&gt;
web-1                                 1/1     Running                      2 (91m ago)       2d5h&lt;br /&gt;
web-2                                 1/1     Running                      2 (93m ago)       2d4h&lt;br /&gt;
wordpress-deploy-5d6679b4c4-tcmpd     1/1     Running                      3 (94m ago)       3d9h&lt;br /&gt;
root@ubuntu-200470-1:~/oct21# kubectl get pod my-nginx-7678bcdf4c-qbl6b -o wide &lt;br /&gt;
NAME                        READY   STATUS    RESTARTS   AGE   IP              NODE    NOMINATED NODE   READINESS GATES&lt;br /&gt;
my-nginx-7678bcdf4c-qbl6b   1/1     Running   0          32s   10.234.252.13   work2   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;&lt;br /&gt;
root@ubuntu-200470-1:~/oct21# curl 10.234.252.13:8080&lt;br /&gt;
&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
&amp;lt;title&amp;gt;Welcome to nginx!&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;style&amp;gt;&lt;br /&gt;
html { color-scheme: light dark; }&lt;br /&gt;
body { width: 35em; margin: 0 auto;&lt;br /&gt;
font-family: Tahoma, Verdana, Arial, sans-serif; }&lt;br /&gt;
&amp;lt;/style&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt;Welcome to nginx!&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;If you see this page, the nginx web server is successfully installed and&lt;br /&gt;
working. Further configuration is required.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;For online documentation and support please refer to&lt;br /&gt;
&amp;lt;a href=&amp;quot;http://nginx.org/&amp;quot;&amp;gt;nginx.org&amp;lt;/a&amp;gt;.&amp;lt;br/&amp;gt;&lt;br /&gt;
Commercial support is available at&lt;br /&gt;
&amp;lt;a href=&amp;quot;http://nginx.com/&amp;quot;&amp;gt;nginx.com&amp;lt;/a&amp;gt;.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;em&amp;gt;Thank you for using nginx.&amp;lt;/em&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
root@ubuntu-200470-1:~/oct21# kubectl exec -it my-nginx-7678bcdf4c-qbl6b -- cat /etc/nginx/conf.d/default.conf &lt;br /&gt;
server {&lt;br /&gt;
  listen     8080;&lt;br /&gt;
  listen  [::]:80;&lt;br /&gt;
  server_name  localhost;&lt;br /&gt;
&lt;br /&gt;
  location / {&lt;br /&gt;
      root   /usr/share/nginx/html;&lt;br /&gt;
      index  index.html index.htm;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  error_page   500 502 503 504  /50x.html;&lt;br /&gt;
  location = /50x.html {&lt;br /&gt;
      root   /usr/share/nginx/html;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
https://www.cnblogs.com/paul8339/p/15424586.html&lt;br /&gt;
&lt;br /&gt;
== controllers 控制器==&lt;br /&gt;
&lt;br /&gt;
===[[控制器DaemonSet]]===&lt;br /&gt;
&lt;br /&gt;
===[[控制器CronJob]]===&lt;br /&gt;
&lt;br /&gt;
=base 2=&lt;br /&gt;
== service==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ubuntu-2004aug-1:~# cat appp.yml &lt;br /&gt;
apiVersion: apps/v1&lt;br /&gt;
kind: Deployment&lt;br /&gt;
metadata:&lt;br /&gt;
  labels:&lt;br /&gt;
    app: test-k8s&lt;br /&gt;
  # 部署名字&lt;br /&gt;
  name: test-k8s&lt;br /&gt;
spec:&lt;br /&gt;
  replicas: 5&lt;br /&gt;
  # 用来查找关联的 Pod，所有标签都匹配才行&lt;br /&gt;
  selector:&lt;br /&gt;
    matchLabels:&lt;br /&gt;
      app: test-k8s&lt;br /&gt;
  # 定义 Pod 相关数据&lt;br /&gt;
  template:&lt;br /&gt;
    metadata:&lt;br /&gt;
      labels:&lt;br /&gt;
        app: test-k8s&lt;br /&gt;
    spec:&lt;br /&gt;
      # 定义容器，可以多个&lt;br /&gt;
      containers:&lt;br /&gt;
        - name: test-k8s # 容器名字&lt;br /&gt;
          image: ccr.ccs.tencentyun.com/k8s-tutorial/test-k8s:v1 # 镜像&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 cat service.yml &lt;br /&gt;
apiVersion: v1&lt;br /&gt;
kind: Service&lt;br /&gt;
metadata:&lt;br /&gt;
  name: test-k8s&lt;br /&gt;
spec:&lt;br /&gt;
  selector:&lt;br /&gt;
    app: test-k8s&lt;br /&gt;
  # 默认 ClusterIP 集群内可访问，NodePort 节点可访问，LoadBalancer 负载均衡模式（需要负载均衡器才可用）&lt;br /&gt;
  type: NodePort&lt;br /&gt;
  ports:&lt;br /&gt;
    - port: 8080        # 本 Service 的端口&lt;br /&gt;
      targetPort: 8080  # 容器端口&lt;br /&gt;
      nodePort: 31000   # 节点端口，范围固定 30000 ~ 32767&lt;br /&gt;
root@ubuntu-2004aug-1:~# &lt;br /&gt;
&lt;br /&gt;
kubectl get svc &lt;br /&gt;
test-k8s                           NodePort    10.233.138.132   &amp;lt;none&amp;gt;        8080:31000/TCP   3m51s&lt;br /&gt;
visit&lt;br /&gt;
192.168.10.41:31000&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
或者 pod 里面&lt;br /&gt;
&lt;br /&gt;
root@ubuntu-2004aug-1:~# kubectl exec  -it test-k8s-86988dc99c-c5cgv -- bash &lt;br /&gt;
&lt;br /&gt;
root@test-k8s-86988dc99c-c5cgv:/app# curl test-k8s:8080&lt;br /&gt;
index page &lt;br /&gt;
&lt;br /&gt;
IP lo10.234.94.65, hostname: test-k8s-86988dc99c-f8wpv&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=statefulset=&lt;br /&gt;
== fulset yml files==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
cat mongo.yml &lt;br /&gt;
apiVersion: apps/v1&lt;br /&gt;
kind: StatefulSet&lt;br /&gt;
metadata:&lt;br /&gt;
  name: mongodb&lt;br /&gt;
spec:&lt;br /&gt;
  replicas: 3&lt;br /&gt;
  serviceName: mongodb&lt;br /&gt;
  selector:&lt;br /&gt;
    matchLabels:&lt;br /&gt;
      app: mongodb&lt;br /&gt;
  template:&lt;br /&gt;
    metadata:&lt;br /&gt;
      labels:&lt;br /&gt;
        app: mongodb&lt;br /&gt;
    spec:&lt;br /&gt;
      containers:&lt;br /&gt;
        - name: mongo&lt;br /&gt;
          image: docker.m.daocloud.io/mongo:4.4&lt;br /&gt;
          # IfNotPresent 仅本地没有镜像时才远程拉，Always 永远都是从远程拉，Never 永远只用本地镜像，本地没有则报错&lt;br /&gt;
          imagePullPolicy: IfNotPresent&lt;br /&gt;
---&lt;br /&gt;
apiVersion: v1&lt;br /&gt;
kind: Service&lt;br /&gt;
metadata:&lt;br /&gt;
  name: mongodb&lt;br /&gt;
spec:&lt;br /&gt;
  selector:&lt;br /&gt;
    app: mongodb&lt;br /&gt;
  type: ClusterIP&lt;br /&gt;
  # HeadLess&lt;br /&gt;
  clusterIP: None&lt;br /&gt;
  ports:&lt;br /&gt;
    - port: 27017&lt;br /&gt;
      targetPort: 27017&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
cat app.yml &lt;br /&gt;
apiVersion: apps/v1&lt;br /&gt;
kind: Deployment&lt;br /&gt;
metadata:&lt;br /&gt;
  # 部署名字&lt;br /&gt;
  name: test-k8s&lt;br /&gt;
spec:&lt;br /&gt;
  replicas: 2&lt;br /&gt;
  # 用来查找关联的 Pod，所有标签都匹配才行&lt;br /&gt;
  selector:&lt;br /&gt;
    matchLabels:&lt;br /&gt;
      app: test-k8s&lt;br /&gt;
  # 定义 Pod 相关数据&lt;br /&gt;
  template:&lt;br /&gt;
    metadata:&lt;br /&gt;
      labels:&lt;br /&gt;
        app: test-k8s&lt;br /&gt;
    spec:&lt;br /&gt;
      # 定义容器，可以多个&lt;br /&gt;
      containers:&lt;br /&gt;
      - name: test-k8s # 容器名字&lt;br /&gt;
        image: ccr.ccs.tencentyun.com/k8s-tutorial/test-k8s:v3-mongo # 镜像&lt;br /&gt;
      # 等待 mongodb 起来后才启动&lt;br /&gt;
      initContainers:&lt;br /&gt;
      - name: wait-mongo&lt;br /&gt;
        image: busybox:1.28&lt;br /&gt;
        command: [&amp;#039;sh&amp;#039;, &amp;#039;-c&amp;#039;, &amp;quot;until nslookup mongodb; do echo waiting for mongo; sleep 2; done&amp;quot;]&lt;br /&gt;
---&lt;br /&gt;
apiVersion: v1&lt;br /&gt;
kind: Service&lt;br /&gt;
metadata:&lt;br /&gt;
  name: test-k8s&lt;br /&gt;
spec:&lt;br /&gt;
  selector:&lt;br /&gt;
    app: test-k8s&lt;br /&gt;
  # 默认 ClusterIp 集群内可访问，NodePort 节点可访问，LoadBalancer 负载均衡模式（需要负载均衡器才可用）&lt;br /&gt;
  type: NodePort&lt;br /&gt;
  ports:&lt;br /&gt;
    - nodePort: 31000   # 节点端口，范围固定 30000 ~ 32767&lt;br /&gt;
      port: 8080        # 本 Service 的端口&lt;br /&gt;
      targetPort: 8080  # 容器端口&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== run==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kubectl apply -f mongo.yml&lt;br /&gt;
&lt;br /&gt;
statefuset# kubectl get pod  | grep mon&lt;br /&gt;
mongodb-0                                 1/1     Running            0               3m10s&lt;br /&gt;
mongodb-1                                 1/1     Running            0               2m30s&lt;br /&gt;
mongodb-2                                 1/1     Running            0               86s&lt;br /&gt;
&lt;br /&gt;
statefuset# kubectl get  statefulset&lt;br /&gt;
NAME                      READY   AGE&lt;br /&gt;
mongodb                   3/3     4m20s&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
kubectl run mongodb-client --rm --tty -i --restart=&amp;#039;Never&amp;#039; --image docker.m.daocloud.io/bitnami/mongodb:4.4.10-debian-10-r20 --command -- bash&lt;br /&gt;
&lt;br /&gt;
I have no name!@mongodb-client:/$ mongo --host mongodb-0.mongodb &lt;br /&gt;
&lt;br /&gt;
&amp;gt; use test &lt;br /&gt;
switched to db test&lt;br /&gt;
&amp;gt; db.users.save({&amp;#039;_id&amp;#039;:&amp;#039;edoc&amp;#039;,&amp;#039;name&amp;#039;:&amp;#039;easydo&amp;#039;})&lt;br /&gt;
WriteResult({ &amp;quot;nMatched&amp;quot; : 0, &amp;quot;nUpserted&amp;quot; : 1, &amp;quot;nModified&amp;quot; : 0, &amp;quot;_id&amp;quot; : &amp;quot;edoc&amp;quot; })&lt;br /&gt;
&amp;gt; db.users.find()&lt;br /&gt;
{ &amp;quot;_id&amp;quot; : &amp;quot;edoc&amp;quot;, &amp;quot;name&amp;quot; : &amp;quot;easydo&amp;quot; }&lt;br /&gt;
&lt;br /&gt;
&amp;gt; exit &lt;br /&gt;
bye&lt;br /&gt;
I have no name!@mongodb-client:/$ mongo --host mongodb-1.mongodb &lt;br /&gt;
&lt;br /&gt;
三个副本都可以创建库&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=configmap=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat secret.yaml &lt;br /&gt;
apiVersion: v1&lt;br /&gt;
kind: Secret&lt;br /&gt;
metadata:&lt;br /&gt;
  name: mongo-secret&lt;br /&gt;
# Opaque 用户定义的任意数据，更多类型介绍 https://kubernetes.io/zh/docs/concepts/configuration/secret/#secret-types&lt;br /&gt;
type: Opaque&lt;br /&gt;
data:&lt;br /&gt;
  # 数据要 base64。https://tools.fun/base64.html&lt;br /&gt;
  mongo-username: bW9uZ291c2Vy&lt;br /&gt;
  mongo-password: bW9uZ29wYXNz&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
kubectl  get secret mongo-secret -o yaml&lt;br /&gt;
apiVersion: v1&lt;br /&gt;
data:&lt;br /&gt;
  mongo-password: bW9uZ29wYXNz&lt;br /&gt;
  mongo-username: bW9uZ291c2Vy&lt;br /&gt;
kind: Secret&lt;br /&gt;
metadata:&lt;br /&gt;
  annotations:&lt;br /&gt;
    kubectl.kubernetes.io/last-applied-configuration: |&lt;br /&gt;
      {&amp;quot;apiVersion&amp;quot;:&amp;quot;v1&amp;quot;,&amp;quot;data&amp;quot;:{&amp;quot;mongo-password&amp;quot;:&amp;quot;bW9uZ29wYXNz&amp;quot;,&amp;quot;mongo-username&amp;quot;:&amp;quot;bW9uZ291c2Vy&amp;quot;},&amp;quot;kind&amp;quot;:&amp;quot;Secret&amp;quot;,&amp;quot;metadata&amp;quot;:{&amp;quot;annotations&amp;quot;:{},&amp;quot;name&amp;quot;:&amp;quot;mongo-secret&amp;quot;,&amp;quot;namespace&amp;quot;:&amp;quot;default&amp;quot;},&amp;quot;type&amp;quot;:&amp;quot;Opaque&amp;quot;}&lt;br /&gt;
  creationTimestamp: &amp;quot;2025-06-10T12:56:29Z&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=[[Helm3]]=&lt;br /&gt;
&lt;br /&gt;
=k8s-imagePullPolicy拉取策略=&lt;br /&gt;
 imagePullPolicy: Always 总是拉取 pull  以前好像是这个默认值&lt;br /&gt;
 imagePullPolicy: IfNotPresent 默认值,本地有则使用本地镜像,不拉取&lt;br /&gt;
 imagePullPolicy: Never 只使用本地镜像，从不拉取&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=k8s 进入pod shell=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kubectl get pods   #查看所有正在运行的pod&lt;br /&gt;
&lt;br /&gt;
NAME                            READY     STATUS    RESTARTS   AGE&lt;br /&gt;
&lt;br /&gt;
nginx-56b8c64cb4-t97vb          1/1       Running   3          1d&lt;br /&gt;
&lt;br /&gt;
 kubectl exec -it nginx-56b8c64cb4-t97vb -- /bin/bash      #假如当前pod只有一个容器,运行以下命令即可&lt;br /&gt;
&lt;br /&gt;
root@nginx-56b8c64cb4-t97vb:/# ps -ef&lt;br /&gt;
&lt;br /&gt;
UID        PID  PPID  C STIME TTY          TIME CMD&lt;br /&gt;
&lt;br /&gt;
root         1     0  0 14:45 ?        00:00:00 nginx: master process nginx -g daemon off;&lt;br /&gt;
&lt;br /&gt;
假如一个pod里有多个容器,用--container or -c 参数。例如:假如这里有个Pod名为my-pod,这个Pod有两个容器,分别名为main-app 和 helper-app,下面的命令将打开到main-app的shell的容器里。&lt;br /&gt;
&lt;br /&gt;
kubectl exec -it my-pod --container main-app -- /bin/bash&lt;br /&gt;
&lt;br /&gt;
#chatgpt还不错 给的答案&lt;br /&gt;
kubectl exec -it &amp;lt;pod-name&amp;gt; -- /bin/bash&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://www.cnblogs.com/to-here/p/13050760.html  k8s不进入pod，直接通过shell在pod里执行命令 ]&lt;br /&gt;
&lt;br /&gt;
[https://blog.51cto.com/u_12708233/2375897  k8s使用shell进入容器被拒绝连接]&lt;br /&gt;
&lt;br /&gt;
= k8s删除pod =&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1、先删除pod2、再删除对应的deployment否则只是删除pod是不管用的，还会看到pod，因为deployment.yaml文件中定义了副本数量&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
实例如下：&lt;br /&gt;
&lt;br /&gt;
删除pod&lt;br /&gt;
&lt;br /&gt;
[root@test2 ~]# kubectl get pod -n jenkins&lt;br /&gt;
NAME                        READY     STATUS    RESTARTS   AGE&lt;br /&gt;
jenkins2-8698b5449c-grbdm   1/1       Running   0          8s&lt;br /&gt;
[root@test2 ~]# kubectl delete pod jenkins2-8698b5449c-grbdm -n jenkins&lt;br /&gt;
pod &amp;quot;jenkins2-8698b5449c-grbdm&amp;quot; deleted&lt;br /&gt;
&lt;br /&gt;
查看pod仍然存储&lt;br /&gt;
&lt;br /&gt;
[root@test2 ~]# kubectl get pod -n jenkins&lt;br /&gt;
NAME                        READY     STATUS    RESTARTS   AGE&lt;br /&gt;
jenkins2-8698b5449c-dbqqb   1/1       Running   0          8s&lt;br /&gt;
[root@test2 ~]# &lt;br /&gt;
&lt;br /&gt;
删除deployment&lt;br /&gt;
&lt;br /&gt;
[root@test2 ~]# kubectl get deployment -n jenkins&lt;br /&gt;
NAME       DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE&lt;br /&gt;
jenkins2   1         1         1            1           17h&lt;br /&gt;
[root@test2 ~]# kubectl delete deployment jenkins2 -n jenkins&lt;br /&gt;
&lt;br /&gt;
再次查看pod消失&lt;br /&gt;
&lt;br /&gt;
deployment.extensions &amp;quot;jenkins2&amp;quot; deleted&lt;br /&gt;
[root@test2 ~]# kubectl get deployment -n jenkins&lt;br /&gt;
No resources found.&lt;br /&gt;
[root@test2 ~]# &lt;br /&gt;
[root@test2 ~]# kubectl get pod -n jenkins&lt;br /&gt;
No resources found.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[ k8s中正确删除一个pod   k8s中正确删除一个pod ]&lt;br /&gt;
=常见组件安装=&lt;br /&gt;
== [[安装Metrics server]]==&lt;br /&gt;
&lt;br /&gt;
=[[hpa]]=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=coredns状态为ImagePullBackOff问题=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kubectl get pods --all-namespaces&lt;br /&gt;
&lt;br /&gt;
kube-system   coredns-7f6cbbb7b8-knhl8             0/1     ImagePullBackOff   0               24h&lt;br /&gt;
kube-system   coredns-7f6cbbb7b8-lt4k5             0/1     ImagePullBackOff   0               24h&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
解决办法：&lt;br /&gt;
&lt;br /&gt;
确定pod所使用的镜像&lt;br /&gt;
&lt;br /&gt;
kubectl get pods coredns-7f6cbbb7b8-knhl8 -n kube-system -o yaml | grep image&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    image: registry.aliyuncs.com/google_containers/coredns:v1.8.4&lt;br /&gt;
    imagePullPolicy: IfNotPresent&lt;br /&gt;
  - image: registry.aliyuncs.com/google_containers/coredns:v1.8.4&lt;br /&gt;
    imageID: &amp;quot;&amp;quot;&lt;br /&gt;
        message: Back-off pulling image &amp;quot;registry.aliyuncs.com/google_containers/coredns:v1.8.4&amp;quot;&lt;br /&gt;
&lt;br /&gt;
root@k8s-master:~# docker pull registry.aliyuncs.com/google_containers/coredns:v1.8.4&lt;br /&gt;
Error response from daemon: manifest for registry.aliyuncs.com/google_containers/coredns:v1.8.4 not found: manifest unknown: manifest unknown&lt;br /&gt;
&lt;br /&gt;
拉个latest 再别名 &lt;br /&gt;
docker pull registry.aliyuncs.com/google_containers/coredns&lt;br /&gt;
&lt;br /&gt;
root@k8s-master:~# docker  images | grep coredns &lt;br /&gt;
registry.aliyuncs.com/google_containers/coredns                   latest    8d147537fb7d   3 months ago   47.6MB&lt;br /&gt;
&lt;br /&gt;
强制 改一下 tag &lt;br /&gt;
root@k8s-master:~# docker tag 8d147537fb7d  registry.aliyuncs.com/google_containers/coredns:v1.8.4&lt;br /&gt;
&lt;br /&gt;
root@k8s-master:~# kubectl get pods --all-namespaces | grep coredns  &lt;br /&gt;
kube-system   coredns-7f6cbbb7b8-knhl8             1/1     Running            0                24h&lt;br /&gt;
kube-system   coredns-7f6cbbb7b8-lt4k5             1/1     Running            0                24h&lt;br /&gt;
root@k8s-master:~# &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
root@k8s-master:~#  kubectl get all -n kube-system &lt;br /&gt;
NAME                                     READY   STATUS             RESTARTS        AGE&lt;br /&gt;
pod/coredns-7f6cbbb7b8-knhl8             0/1     ImagePullBackOff   0               24h&lt;br /&gt;
pod/coredns-7f6cbbb7b8-lt4k5             0/1     ImagePullBackOff   0               24h&lt;br /&gt;
&lt;br /&gt;
docker pull registry.aliyuncs.com/google_containers/coredns&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://blog.csdn.net/weifangwei100/article/details/118940876  coredns状态为ImagePullBackOff问题]&lt;br /&gt;
&lt;br /&gt;
[https://blog.csdn.net/hbuxiaofei/article/details/117632562  k8s解决coredns 的ImagePullBackOff 和ErrImagePull 问题]&lt;br /&gt;
&lt;br /&gt;
https://stackoverflow.com/questions/53559291/kubernetes-coredns-in-crashloopbackoff&lt;br /&gt;
&lt;br /&gt;
[https://blog.csdn.net/qq_24046745/article/details/93988920  Kubernetes CoreDNS 状态是 CrashLoopBackOff 解决思路]&lt;br /&gt;
&lt;br /&gt;
=CrashLoopBackOff的解决方法=&lt;br /&gt;
&lt;br /&gt;
[https://blog.csdn.net/u012803274/article/details/114155844  记录一次修复k8s pod长时间处于CrashLoopBackOff状态问题]&lt;br /&gt;
&lt;br /&gt;
[https://www.jianshu.com/p/bcc05427990d k8s启动Pod遇到CrashLoopBackOff的解决方法]&lt;br /&gt;
=k8s常见问题=&lt;br /&gt;
&lt;br /&gt;
==pod无故重启 ==&lt;br /&gt;
OOM&lt;br /&gt;
&lt;br /&gt;
[https://segmentfault.com/a/1190000039984292 运维攻坚之kubernetes pod无故重启问题排查]&lt;br /&gt;
&lt;br /&gt;
[https://www.cnblogs.com/chopper-poet/p/15328054.html 记一次k8s pod频繁重启的优化之旅]&lt;br /&gt;
&lt;br /&gt;
[https://blog.csdn.net/hongxiaolu/article/details/113711718  POD 中容器异常重启原因定位]&lt;br /&gt;
&lt;br /&gt;
=k8s yaml 文件详解=&lt;br /&gt;
Kubernetes YAML 文件是定义资源对象（如 Pod、Service、Deployment 等）的主要配置格式。K8s 使用 YAML 文件来声明和管理集群中的资源。以下是 K8s YAML 文件的结构详解：&lt;br /&gt;
1. 基础结构&lt;br /&gt;
&lt;br /&gt;
YAML 文件通常包含以下几个核心字段：&lt;br /&gt;
&lt;br /&gt;
    apiVersion: API 版本，指定该资源所属的 API 版本。&lt;br /&gt;
    kind: 资源类型，指定要创建的 Kubernetes 对象类型，如 Pod、Service、Deployment 等。&lt;br /&gt;
    metadata: 元数据，包括资源的名称、标签、命名空间等。&lt;br /&gt;
    spec: 资源的详细配置，具体内容依赖于资源类型。&lt;br /&gt;
&lt;br /&gt;
2. 示例：Pod 配置文件&lt;br /&gt;
&lt;br /&gt;
yaml&lt;br /&gt;
&lt;br /&gt;
apiVersion: v1             # API 版本&lt;br /&gt;
kind: Pod                  # 资源类型&lt;br /&gt;
metadata:&lt;br /&gt;
  name: my-pod             # Pod 名称&lt;br /&gt;
  labels:                  # 标签&lt;br /&gt;
    app: my-app&lt;br /&gt;
spec:&lt;br /&gt;
  containers:              # 容器定义&lt;br /&gt;
  - name: my-container     # 容器名称&lt;br /&gt;
    image: nginx           # 容器镜像&lt;br /&gt;
    ports:&lt;br /&gt;
    - containerPort: 80    # 容器内部暴露的端口&lt;br /&gt;
&lt;br /&gt;
解释：&lt;br /&gt;
&lt;br /&gt;
    apiVersion: v1：表示使用 K8s v1 API 版本。&lt;br /&gt;
    kind: Pod：声明这是一个 Pod 资源。&lt;br /&gt;
    metadata：提供元数据，如 Pod 名称、标签等。&lt;br /&gt;
    spec：定义了 Pod 的行为和具体配置。&lt;br /&gt;
        containers：Pod 中的容器数组，支持多个容器。&lt;br /&gt;
        name：容器的名称。&lt;br /&gt;
        image：容器使用的镜像。&lt;br /&gt;
        ports：声明容器暴露的端口。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. Deployment 配置文件&lt;br /&gt;
&lt;br /&gt;
yaml&lt;br /&gt;
&lt;br /&gt;
apiVersion: apps/v1        # Deployment 所属的 API 版本&lt;br /&gt;
kind: Deployment           # 资源类型：Deployment&lt;br /&gt;
metadata:&lt;br /&gt;
  name: my-deployment      # Deployment 名称&lt;br /&gt;
spec:&lt;br /&gt;
  replicas: 3              # 副本数&lt;br /&gt;
  selector:                # 用于选择匹配的 Pod&lt;br /&gt;
    matchLabels:&lt;br /&gt;
      app: my-app&lt;br /&gt;
  template:                # Pod 模板&lt;br /&gt;
    metadata:&lt;br /&gt;
      labels:&lt;br /&gt;
        app: my-app&lt;br /&gt;
    spec:&lt;br /&gt;
      containers:&lt;br /&gt;
      - name: my-container&lt;br /&gt;
        image: nginx&lt;br /&gt;
        ports:&lt;br /&gt;
        - containerPort: 80&lt;br /&gt;
&lt;br /&gt;
解释：&lt;br /&gt;
&lt;br /&gt;
    kind: Deployment：指定这是一个 Deployment 资源。&lt;br /&gt;
    replicas：声明要运行多少个 Pod 副本。&lt;br /&gt;
    selector：用于选择属于该 Deployment 的 Pod，基于 matchLabels 中的标签。&lt;br /&gt;
    template：这是 Pod 的模板，Deployment 会根据该模板创建 Pod。&lt;br /&gt;
    containers：与 Pod 配置相同，定义了容器的详细信息。&lt;br /&gt;
&lt;br /&gt;
4. Service 配置文件&lt;br /&gt;
&lt;br /&gt;
yaml&lt;br /&gt;
&lt;br /&gt;
apiVersion: v1&lt;br /&gt;
kind: Service&lt;br /&gt;
metadata:&lt;br /&gt;
  name: my-service&lt;br /&gt;
spec:&lt;br /&gt;
  selector:&lt;br /&gt;
    app: my-app            # 选择具有标签 app: my-app 的 Pod&lt;br /&gt;
  ports:&lt;br /&gt;
  - protocol: TCP&lt;br /&gt;
    port: 80               # Service 暴露的端口&lt;br /&gt;
    targetPort: 80         # Pod 内部容器的端口&lt;br /&gt;
  type: ClusterIP          # Service 的类型&lt;br /&gt;
&lt;br /&gt;
解释：&lt;br /&gt;
&lt;br /&gt;
    kind: Service：定义了一个 Service 资源。&lt;br /&gt;
    selector：选择符合该标签的 Pod。&lt;br /&gt;
    ports：定义了 Service 暴露的端口及映射到 Pod 的端口。&lt;br /&gt;
    type：Service 的类型，可以是 ClusterIP、NodePort、LoadBalancer 等。&lt;br /&gt;
&lt;br /&gt;
5. 常见字段解释&lt;br /&gt;
&lt;br /&gt;
    metadata.name：资源名称。&lt;br /&gt;
    metadata.namespace：资源所属的命名空间（不指定则为默认命名空间）。&lt;br /&gt;
    spec：主要描述资源的配置，比如 Pod 中的容器配置、Deployment 中的副本数、Service 中的端口配置等。&lt;br /&gt;
    labels：键值对的标签，用于标识资源，可以用于选择器（selector）匹配。&lt;br /&gt;
    selector：根据标签选择要作用的对象。&lt;br /&gt;
    replicas：副本数，适用于 Deployment 和 StatefulSet。&lt;br /&gt;
    image：容器镜像，指定要运行的应用版本。&lt;br /&gt;
&lt;br /&gt;
6. 资源类型&lt;br /&gt;
&lt;br /&gt;
Kubernetes 支持多种资源类型，每种资源的 YAML 文件结构都会有所不同。以下是常见的资源类型：&lt;br /&gt;
&lt;br /&gt;
    Pod：最小的可部署单元，运行容器的实例。&lt;br /&gt;
    Service：定义了访问 Pod 的方式，可以为多个 Pod 提供一个统一的访问入口。&lt;br /&gt;
    Deployment：用于管理无状态应用，支持滚动更新和回滚等高级功能。&lt;br /&gt;
    StatefulSet：用于管理有状态应用，保持 Pod 的稳定标识和存储。&lt;br /&gt;
    ConfigMap 和 Secret：分别用于管理配置和敏感数据。&lt;br /&gt;
    Ingress：定义从外部访问集群内部服务的规则。&lt;br /&gt;
    PersistentVolume (PV) 和 PersistentVolumeClaim (PVC)：管理持久存储。&lt;br /&gt;
&lt;br /&gt;
7. 应用 YAML 文件&lt;br /&gt;
&lt;br /&gt;
YAML 文件创建完后，可以使用以下命令在 Kubernetes 集群中应用这些文件：&lt;br /&gt;
&lt;br /&gt;
bash&lt;br /&gt;
&lt;br /&gt;
kubectl apply -f &amp;lt;filename&amp;gt;.yaml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
8. 查看应用后的资源状态&lt;br /&gt;
&lt;br /&gt;
可以使用以下命令查看资源状态：&lt;br /&gt;
&lt;br /&gt;
    查看 Pod：&lt;br /&gt;
&lt;br /&gt;
    bash&lt;br /&gt;
&lt;br /&gt;
kubectl get pods&lt;br /&gt;
&lt;br /&gt;
查看 Deployment：&lt;br /&gt;
&lt;br /&gt;
bash&lt;br /&gt;
&lt;br /&gt;
kubectl get deployments&lt;br /&gt;
&lt;br /&gt;
查看 Service：&lt;br /&gt;
&lt;br /&gt;
bash&lt;br /&gt;
&lt;br /&gt;
    kubectl get services&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=see also=&lt;br /&gt;
[[在Kubernetes上运行应用程序]]&lt;br /&gt;
&lt;br /&gt;
=references=&lt;br /&gt;
[https://it.baiked.com/kubernetes/2833.html  几款k8s快速部署的开源项目对比]&lt;br /&gt;
&lt;br /&gt;
[https://www.bilibili.com/video/BV1Tg411P7EB/?spm_id_from=333.788.videopod.episodes&amp;amp;vd_source=e3e41ea2b1d70e0e3a6a0372ee88d714&amp;amp;p=7 Kubernetes (K8S) 3 小时快速上手 + 实践]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://blog.csdn.net/kunyus/article/details/88840999  kuernetes 修改pod时区的方法]&lt;br /&gt;
&lt;br /&gt;
常用第三方k8s 集成 &lt;br /&gt;
&lt;br /&gt;
DigitalOcean Kubernetes&lt;br /&gt;
ack &lt;br /&gt;
tke&lt;br /&gt;
&lt;br /&gt;
=docker基础知识=&lt;br /&gt;
&lt;br /&gt;
[https://www.cnblogs.com/yinzhengjie/p/12183066.html Linux的namespace和cgroups简介]&lt;br /&gt;
&lt;br /&gt;
[[category:k8s]]&lt;/div&gt;</summary>
		<author><name>Evan</name></author>
	</entry>
</feed>