首页 > 其他 > 详细

k8s本地部署

时间:2019-06-18 17:22:00      阅读:193      评论:0      收藏:0      [点我收藏+]

Kubernetes 具有如下特点:

便携性: 无论公有云、私有云、混合云还是多云架构都全面支持
可扩展: 它是模块化、可插拔、可挂载、可组合的,支持各种形式的扩展
自修复: 它可以自保持应用状态、可自重启、自复制、自缩放的,通过声明式语法提供了强大的自修复能力

Kubernetes 是什么意思? K8s?

名称 Kubernetes 源于希腊语,意为 “舵手” 或 “飞行员”, 且是英文 “governor” 和 “cybernetic”的词根。 K8s 是通过将 8 个字母 “ubernete” 替换为 8 而导出的缩写。另外,在中文里,k8s 的发音与 Kubernetes 的发音比较接近。

部署

server.js

var http = require('http');

var handleRequest = function(request, response) {
  console.log('Received request for URL: ' + request.url);
  response.writeHead(200);
  response.end('Hello World!');
};
var www = http.createServer(handleRequest);
www.listen(8080);
FROM node:6.9.2
EXPOSE 8080
COPY server.js .
CMD node server.js
eval $(minikube docker-env)
docker build -t hello-node:v1 .

创建 Deployment

kubectl run hello-node --image=hello-node:v1 --port=8080

查看 Deployment:

kubectl get deployments

查看pod

kubectl get pods

查看集群事件:

kubectl get events

查看 kubectl 配置:

kubectl config view

创建service
暴露到公网

kubectl expose deployment hello-node --type=LoadBalancer
kubectl get services

服务访问

minikube service hello-node --url

查看log

kubectl logs <POD-NAME>

更新应用:

response.end('Hello World Again!');

构建v2镜像

docker build -t hello-node:v2 .

修改镜像

kubectl set image deployment/hello-node hello-node=hello-node:v2

再次访问

清理

现在可以清理您在集群中创建的资源:

kubectl delete service hello-node
kubectl delete deployment hello-node

可以停止 Minikube VM:

minikube stop
eval $(minikube docker-env -u)

或者,删除 Minikube VM:

minikube delete

通过yaml描述文件创建deployment
deployment.yaml

apiVersion: apps/v1beta1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  replicas: 2 # tells deployment to run 2 pods matching the template
  template: # create pods using pod definition in this template
    metadata:
      # unlike pod-nginx.yaml, the name is not included in the meta data as a unique name is
      # generated from the deployment name
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.7.9
        ports:
        - containerPort: 80

将 kubectl 的 —record 的 flag 设置为 true 可以在 annotation 中记录当前命令创建或者升级了该资源。这在未来会很有用,例如,查看在每个 Deployment revision 中执行了哪些命令。

kubectl create -f deployment.yaml --record
kubectl describe deployment nginx-deployment
kubectl get deployments

给这个nginx换个版本

kubectl set image deployment/nginx-deployment nginx=nginx:1.9.1
或手动改配置
kubectl edit deployment/nginx-deployment

查看状态:

kubectl rollout status deployment/nginx-deployment
- deployment "nginx-deployment" successfully rolled out

通过record可以记录命令

 kubectl rollout history deployment/nginx-deployment
deployment.extensions/nginx-deployment
REVISION  CHANGE-CAUSE
1         kubectl create --filename=deployment.yaml --record=true
2         kubectl create --filename=deployment.yaml --record=true

扩容/缩容

kubectl  scale deployment nginx-deployment --replicas=4

查看历史操作

kubectl rollout history deployment/nginx-deployment

回滚

kubectl rollout history deployment/nginx-deployment --revision=2

回滚到历史版本

kubectl rollout undo deployment/nginx-deployment --to-revision=2

暂停/恢复

kubectl rollout pause deployment/nginx-deploymen
kubectl rollout resume deploy nginx-deployment

k8s本地部署

原文:https://www.cnblogs.com/dh-dh/p/11046306.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!