前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Kubernetes/K8S快速入门之minikube

Kubernetes/K8S快速入门之minikube

作者头像
码客说
发布2021-03-04 10:52:36
8540
发布2021-03-04 10:52:36
举报
文章被收录于专栏:码客码客码客

安装K8S

  1. 配置/etc/hosts文件,将所有机器配置成通过主机名可以访问。
  2. 如果环境中有代理,请一定要在环境变量中将no_proxy配置正确。
  3. master还需要执行下面的命令
cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
br_netfilter
EOF

cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sudo sysctl --system

Ubuntu

apt-get update && apt-get install -y apt-transport-https
curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add - 
cat <<EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOF
sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl

CentOS

cat <<EOF | sudo tee /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

# 将 SELinux 设置为 permissive 模式(相当于将其禁用)
setenforce 0
sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config

yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes

systemctl enable --now kubelet

查看

kubectl version --client

你需要在每台机器上安装以下的软件包:

  • kubeadm:用来初始化集群的指令。
  • kubelet:在集群中的每个节点上用来启动 Pod 和容器等。
  • kubectl:用来与集群通信的命令行工具。

minikube

minikube的下载和启动

minikube 是一个工具, 能让你在本地运行 Kubernetes。 minikube 在你本地的个人计算机(包括 Windows、macOS 和 Linux PC)运行一个单节点的 Kubernetes 集群,以便你来尝试 Kubernetes 或者开展每天的开发工作。

注意

这个创建的是单节点的,这个节点是创建一个虚拟机,依赖外部的vritualbox的方式。

Github:https://github.com/kubernetes/minikube

下载

curl -Lo minikube http://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/releases/v1.17.1/minikube-linux-amd64

chmod +x minikube

cp minikube /usr/local/sbin

启动

minikube start --vm-driver=none

卸载

minikube stop
minikube delete

如果未设置Docker的镜像源的也可以

minikube start --vm-driver=none --image-mirror-country='cn'

注意

--image-mirror-country='cn' 这个选项是专门为中国准备的,这个选项会让你使用阿里云的镜像仓库.

实践

Deployment 实践

首先配置好 Deployment 的配置文件(这里用的是 nginx 镜像)

创建文件夹

mkdir /root/k8s
cd /root/k8s
vi app.yaml

[ app.yaml ]

apiVersion: apps/v1
kind: Deployment
metadata:
  name: web
spec:
  selector:
    matchLabels:
      app: web
  replicas: 2
  template:
    metadata:
      labels:
        app: web
    spec:
      containers:
      - name: web
        image: nginx
        ports:
        - containerPort: 80

通过 kubectl 命令创建服务

创建

kubectl create -f app.yaml

等待一会后,查看 Pod 调度、运行情况。

我看可以看到 Pod 的名字、运行状态、Pod 的 ip、还有所在Node的名字等信息

kubectl get Pods -o wide

Service 实践

通过上面创建的 Deployment 我们还没法合理的访问到应用,下面我们就创建一个 service 作为我们访问应用的入口。

首先创建service配置

vi service.yaml

[ service.yaml ]

apiVersion: v1
kind: Service
metadata:
  name: web
spec:
  ports:
  - port: 8888 # 服务端口
    protocol: TCP
    targetPort: 80 # 容器端口
  selector:
    app: web # 标签选择器,这里的app=web正是我们刚才建立app

创建服务

kubectl create -f service.yaml

提示创建成功

service/web created

查看服务

kubectl get service

结果

NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.96.0.1 443/TCP 8m46s web ClusterIP 10.107.120.105 8888/TCP 2m38s

访问服务

接下来就可以在任意节点通过ClusterIP负载均衡的访问后端应用了

访问

curl -I 10.107.120.105:8888

访问成功返回

HTTP/1.1 200 OK Server: nginx/1.19.6 Date: Thu, 25 Feb 2021 10:50:57 GMT Content-Type: text/html Content-Length: 612 Last-Modified: Tue, 15 Dec 2020 13:59:38 GMT Connection: keep-alive ETag: “5fd8c14a-264” Accept-Ranges: bytes

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-02-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装K8S
  • minikube
  • 实践
    • Deployment 实践
      • Service 实践
      相关产品与服务
      容器服务
      腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档