微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

k8s实例

k8s实例

1. 创建一个deployment副本数为3,然后滚动更新镜像版本,并记录这个更新记录,最后再回滚到上一个版本

[root@master test]# cat test.yml 
---
apiVersion: apps/v1
kind: Deployment
Metadata:
  name: test
  labels: 
    app: test
spec:
  replicas: 3
  selector:
    matchLabels:
      app: test
  template:
    Metadata:
      labels:
        app: test
    spec: 
      containers:
      - image: dockerimages123/httpd:v0.1
        name: test
        imagePullPolicy: IfNotPresent


[root@master test]# kubectl apply -f test.yml 
deployment.apps/test created

[root@master haproxy]# kubectl get pod
NAME                    READY   STATUS    RESTARTS   AGE
test-85cd869cd6-7524t   1/1     Running   0          4m49s
test-85cd869cd6-8khgw   1/1     Running   0          4m49s
test-85cd869cd6-kc7fw   1/1     Running   0          4m49s

// 滚动更新
[root@master haproxy]# kubectl set image deploy/test test=dockerimage123/httpd:v2.0
deployment.apps/test image updated

[root@master haproxy]# kubectl get pod
NAME                    READY   STATUS        RESTARTS   AGE
test-6cfbd9b7f-5dxjk    1/1     Running       0          13s
test-6cfbd9b7f-8kbs8    1/1     Running       0          11s
test-6cfbd9b7f-sv9km    1/1     Running       0          14s
test-85cd869cd6-7524t   1/1     Terminating   0          9m24s
test-85cd869cd6-8khgw   1/1     Terminating   0          9m24s
test-85cd869cd6-kc7fw   1/1     Terminating   0          9m24s

[root@master haproxy]# kubectl get pod
NAME                   READY   STATUS    RESTARTS   AGE
test-6cfbd9b7f-5dxjk   1/1     Running   0          103s
test-6cfbd9b7f-8kbs8   1/1     Running   0          101s
test-6cfbd9b7f-sv9km   1/1     Running   0          104s


[root@master haproxy]# kubectl rollout history deploy test
deployment.apps/test 
REVISION  CHANGE-CAUSE
1         <none>
2         <none>
3         <none>

[root@master haproxy]# kubectl rollout history deploy test --revision=3    
deployment.apps/test with revision #3  //查看上一个版本的信息
Pod Template:
  Labels:       app=test
        pod-template-hash=6cfbd9b7f
  Containers:
   test:
    Image:      dockerimages123/httpd:v2.0
    Port:       <none>
    Host Port:  <none>
    Environment:        <none>
    Mounts:     <none>
  Volumes:      <none>
  
[root@master haproxy]# kubectl rollout undo deploy test  //回滚到上一个版本
deployment.apps/test rolled back

[root@master haproxy]# kubectl get pod
NAME                    READY   STATUS             RESTARTS   AGE
test-6cfbd9b7f-5dxjk    1/1     Running            0          32m
test-6cfbd9b7f-8kbs8    1/1     Running            0          32m
test-6cfbd9b7f-sv9km    1/1     Running            0          32m

2. 给一个应用扩容副本数为3

[root@master test]# kubectl create deploy test --image Nginx
deployment.apps/test1 created

[root@master test]# kubectl get pod
test1-6d5588f8cc-4hgnt   1/1     Running             0          6m33s

[root@master test]# kubectl get pod
NAME                     READY   STATUS    RESTARTS   AGE
test-5f6778868d-4t9xd    1/1     Running   0          2m23s
test1-6d5588f8cc-4hgnt   1/1     Running   0          8m51s
test1-6d5588f8cc-b9qsw   1/1     Running   0          49s
test1-6d5588f8cc-vkvh5   1/1     Running   0          49s

3. 创建一个pod,其中运行着Nginx、redis、mamcached

[root@master test]# cat test.yml 
---
apiVersion: v1
kind: Pod
Metadata:
  name: test
  labels: 
    app: test
spec:
  containers:
  - image: Nginx
    name: Nginx
  - image: redis
    name: redis
  - image: memcached
    name: memcached



[root@master test]# kubectl apply -f test.yml 
pod/test created

[root@master test]# kubectl get pod
NAME   READY   STATUS             RESTARTS   AGE
test3   3/3     Running            0         18m

4. 给一个pod创建一个service,并可以通过Cluster/NodePort访问

[root@master test]# cat test.yml 
---
apiVersion: v1
kind: Pod
Metadata:
  name: test
  labels: 
    app: test
spec:
  containers:
  - image: Nginx
    name: Nginx
---
apiVersion: v1
kind: Service
Metadata:
  name: test1
spec:
  ports:
  - port: 80
    targetPort: 80
    nodePort: 30001
  selector:
    app: test1
  type: NodePort


[root@master test]# kubectl apply -f test.yml
pod/test unchanged
service/test created

[root@master test]# kubectl get pod,svc
NAME        READY   STATUS    RESTARTS   AGE
pod/test   1/1     Running   0          50s

NAME                 TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)        AGE
service/kubernetes   ClusterIP   10.96.0.1        <none>        443/TCP        7d1h
service/test4        NodePort    10.110.1100.198   <none>        80:30001/TCP   50s

[root@master test]# curl 10.110.1100.198 
<!DOCTYPE html>
<html>
<head>
<title>Welcome to Nginx!</title>
<style>

[root@master test]# curl 192.168.182.150:30001
<!DOCTYPE html>
<html>
<head>
<title>Welcome to Nginx!</title>
<style>

5. 创建deployment和service,使用busyBox容器nslookup解析service

[root@master test]# kubectl run test2 --image busyBox -- sleep 500
pod/test2 created

[root@master test]# kubectl get pod
NAME    READY   STATUS    RESTARTS   AGE
test2   1/1     Running   0          22s

[root@master test]# kubectl exec -it test2 -- /bin/sh
/ # nslookup kubernetes
Server:         10.96.0.10
Address:        10.96.0.10:53

Name:   kubernetes.default.svc.cluster.local
Address: 10.96.0.1

*** Can't find kubernetes.svc.cluster.local: No answer
*** Can't find kubernetes.cluster.local: No answer
*** Can't find kubernetes.example.com: No answer
*** Can't find kubernetes.default.svc.cluster.local: No answer
*** Can't find kubernetes.svc.cluster.local: No answer
*** Can't find kubernetes.cluster.local: No answer
*** Can't find kubernetes.example.com: No answer


版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐