kubernetes随笔,minikube

kubernetes

vm centos7.8

初始化docker

添加docker组,将当前用户加入该组,如admin
sudo groupadd docker
sudo usermod -aG docker ${USER}
sudo systemctl restart docker
su root //需要切换下用户,生效配置
su ${USER}
安装kubectl 1.19.0-0原生包管理器方式
#添加国内yum源
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
[root@minikube ~]# yum install kubectl -y
自动补全命令

在linux上

yum install -y bash-completion
[admin@minikube k8s]$ locate bash-completion
/usr/share/bash-completion
/usr/share/bash-completion/bash_completion
/usr/share/bash-completion/completions
/usr/share/bash-completion/helpers

source /usr/share/bash-completion/bash_completion
source <(kubectl completion bash)

在mac上

$ brew install bash-completion
$ source $(brew --prefix)/etc/bash_completion
$ source <(kubectl completion bash)
安装minikube
curl -Lo minikube https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/releases/v1.13.0/minikube-linux-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/

启动报错

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9fz9qO9R-1600851771929)(…/AppData/Roaming/Typora/typora-user-images/1599725956974.png)]

安装

yum install epel-release

yum install conntrack-tools

重新启动

su - admin 
minikube start --registry-mirror=https://registry.docker-cn.com --image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers --vm-driver=docker --alsologtostderr -v=8 --base-image registry.cn-hangzhou.aliyuncs.com/google_containers/kicbase:v0.0.10



启动控台
minikube dashboard

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jktQfJmG-1600851771932)(…/AppData/Roaming/Typora/typora-user-images/1599879156683.png)]

#暴露端口42026 ,外网可以访问
[admin@minikube ~]$ nohup kubectl proxy --port=42026 --address='192.168.9.159' --accept-hosts='^.*' > /dev/null 2>&1 &
#扩展
kubectl proxy  --port=42026 --address='192.168.9.159' --accept-hosts='^192.168.9.159$'

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OJeYb2nh-1600851771934)(…/AppData/Roaming/Typora/typora-user-images/1599879267063.png)]

打开网址:http://192.168.9.159:42026/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/#/cluster?namespace=default

创建hello-node文件夹,创建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);
创建docker 容器

Dockerfile

FROM node:6.9.2
EXPOSE 8080
COPY server.js .
CMD ["node","server.js"]

请确保使用Minikube Docker守护进程:

eval $(minikube docker-env)

撤销

eval $(minikube docker-env -u)

使用Minikube Docker守护进程build Docker镜像:

docker build -t hello-node:v1 .
创建Deployment

查看使用方法:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ytplmc0V-1600851771937)(…/AppData/Roaming/Typora/typora-user-images/1600153058773.png)]

[admin@minikube hellnode]$ kubectl create deployment hello-node --image=hello-node:v1 --port=8080  --replicas=3
deployment.apps/hello-node created
[admin@minikube hellnode]$ kubectl get deployments
NAME         READY   UP-TO-DATE   AVAILABLE   AGE
hello-node   3/3     3            3     13s
创建Service

使用expose NodePort

[admin@minikube hellnode]$ kubectl expose deployment hello-node --type=NodePort
service/hello-node exposed
[admin@minikube hellnode]$ kubectl get service 
NAME         TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)          AGE
hello-node   NodePort    10.101.33.61   <none>        8080:31502/TCP   21s
kubernetes   ClusterIP   10.96.0.1      <none>        443/TCP          102m

minikube 默认是起 virtualbox/vm,起了个子网,而你的 nodeport 是暴露在 虚拟机的子网 ip 上,应该只有你台 VPS 可以访问。你搞个映射。 我建议你不用 minikube 了直接 kubeadmin 装个单节点玩玩

minikube service hello-node
更新应用
[admin@minikube hellnode]$ vim server.js 
[admin@minikube hellnode]$ docker build -t hello-node:v2 .
Sending build context to Docker daemon  3.072kB
Step 1/4 : FROM node:6.9.2
....
Successfully built b72dd589fd09
Successfully tagged hello-node:v2
[admin@minikube hellnode]$ kubectl set image deployment/hello-node hello-node=hello-node:v2
deployment.apps/hello-node image updated
[admin@minikube hellnode]$ minikube service hello-node
|-----------|------------|-------------|-------------------------|
| NAMESPACE |    NAME    | TARGET PORT |           URL           |
|-----------|------------|-------------|-------------------------|
| default   | hello-node |        8080 | http://172.17.0.3:31502 |
|-----------|------------|-------------|-------------------------|
* Opening service default/hello-node in default browser...
  - http://172.17.0.3:31502
[admin@minikube hellnode]$ curl  http://172.17.0.3:31502
[admin@minikube hellnode]$ curl  http://172.17.0.3:31502
Hello World!你好
清理删除

现在可以删除在集群中创建的资源

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

或者停止minikube

minikube stop
deployment nginx

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-R2rYQ1bN-1600851771939)(…/AppData/Roaming/Typora/typora-user-images/1600840873566.png)]

#vim nginx-deployment
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.7.9
        ports:
        - containerPort: 80
status: {}

#创建deployment
[admin@minikube k8s]$ kubectl create -f nginx-deployment.yml 
deployment.apps/nginx-deployment created

  containers:
  - name: nginx
    image: nginx:1.7.9
    ports:
    - containerPort: 80

status: {}

#创建deployment
[admin@minikube k8s]$ kubectl create -f nginx-deployment.yml 
deployment.apps/nginx-deployment created





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值