DarkTime
  • README
  • SpringBoot
    • spring boot 运维
    • Spring Boot 部署war包
    • springboot搭建
    • spring boot 读取配置文件
    • 简单总结
    • spring配置文件
    • spring boot Configuration
    • spring boot 配置文件
    • spring boot 配置mybatis
  • MacAwesome
    • markdown使用
    • MAC APP Awesome
    • [markdown使用](/MacAwesome/SUMMARY.md)
    • chrome
    • intellij idea
    • MacAwesome
    • VS Code 的使用
    • MAC Shell命令
  • database
    • druid使用
  • 框架
    • 项目拆析
    • 各种框架和工具
  • docker
    • kubernetes
    • docker
    • docker 常用镜像
  • 效率工具
    • 解决dns污染导致域名解析失败
    • sonarqube 相关配置
    • Iterm2 使用
    • gitbook
    • github awesome github资源推荐
    • playground 在线试用平台汇总
    • linux中的office
    • linux screen 工具
    • 简单Mock服务(moco)
    • npm
    • Visual Studio Code 的使用
    • 配置开发环境
    • homebrew的使用
    • 汇总
  • tomcat
    • tomcat目录规范
  • code_snippets
  • 专题
    • RESTful API
    • serveless服务
    • 搭建私有云主机 折腾记
    • 开发中的各种疑难杂症问题
    • spring 最佳实践
    • LLM 大语言模型
    • notelive
      • 文章框架
      • notelive vue版本开发
      • notelive 开发 札记
    • webrtc技术分析
    • 反向代理
    • spring-cloud
      • spring boot admin 监控服务
      • Spring Cloud 整理汇总
  • python
    • python 学习
    • Python 修饰器的一些小细节
  • 云主机
    • aliyun 主机的种种
  • maven
    • maven使用
    • maven项目增加编译版本号 buildnumber-maven-plugin
    • 仓库
  • java
    • java 开发常用工具类
    • java
    • apache commons pool 对象连接池
  • 大数据
    • kafka
    • gobblin
    • sqoop 简介及使用
    • hbase
    • gobblin
    • sqoop源码解析
    • hadoop map reduce
    • 大数据 学习札记
  • 脚本
    • python
      • 批量请求url 解析json数据
    • js
      • sheetjs-js读取excel
    • shell
      • 自动生成bitbook的summary文件
      • linux/mac 实用脚本
      • 自动创建tomcat项目脚本
      • 批量处理文件内容脚本
  • nginx
    • nginx
    • ngix 文件浏览器 文件服务器
  • linux
    • 群晖nas札记
    • ftp
    • linux 运维
    • 常用命令
    • linux
    • mysqldump脚本
    • 代理
    • 简易灰度部署脚本 不使用jenkins的纯shell方式
    • shell脚本
    • 附加文档
  • mysql
    • sql
  • 游戏开发
    • Unity 2020 学习笔记
  • 学习笔记
    • centos常用环境安装
    • gradle 学习
    • 建站经历
    • python
      • 爬虫教程
    • 如何解决百度爬虫无法爬取搭建在Github上的个人博客的问题? - 知乎
    • baas
      • 在本地部署Parse Server
    • mysql学习标记
    • java code snippets
    • 非Spring Boot Web项目 注册节点到Eureka Server并提供服务
    • kotlin
      • Kotlin 学习札记
    • spring cloud
    • vim配置
    • 前端
      • 开发PWA应用
  • jenkins
    • jenkins配置备份
    • gitlab触发Jenkins 自动构建
    • 安装与使用
  • npm
    • npm 使用
  • git
    • ignore
    • git使用总结
    • git配置多个远程仓库
  • 前端
    • swig
    • 解决跨域请求问题
    • angularjs 学习
    • scriptbot的前端开发经验总结
    • 各种资源
    • 一些有用的js代码
Powered by GitBook
On this page
  • 在线学习环境 交互式学习环境
  • 学习札记
  • 参考资料
  • 部署kubernetes
  • 笔记
  • 学习
  • playground 搭建
  • 单节点的环境安装
  • 多节点的环境安装
  • 开始游戏
  • 多节点配置

Was this helpful?

  1. docker

kubernetes

PreviousdockerNextdocker

Last updated 3 years ago

Was this helpful?

在线学习环境 交互式学习环境

Kubernetes狐狸教程 vnc 浏览器打开失败解决方法 安装其他Debian浏览器

apt-get update
# 火狐浏览器
apt-get install iceweasel
# goole浏览器
apt-get install google-chrome-stable

学习札记

参考资料

部署kubernetes

MAC 上启用k8s

docker 启用k8s 国内网路问题解决:https://github.com/AliyunContainerService/k8s-for-docker-desktop

笔记

pod 在Pod中的任何容器都共享了容器命名空间以及本地网络。因此在Pod的容器直接可以非常方便的进行通讯,就好像它们是运行在同一个机器上一样,同时彼此之间又保持隔离。 Pod中可以包含多个容器,但是你还是应该尽可能的限制一下。因为Pod是作为一个最小单元,整体进行伸缩。这可能导致资源的浪费以及更多的费用开销。为了避免这种问题。Pod应该尽可能的保持"小",通常指应该包含一个主进程,以及与其紧密合作的辅助容器(这些辅助容器通常被称为Sidecar)。 http://dockone.io/article/3050

services 如果Pods是短暂的,那么重启时IP地址可能会改变,怎么才能从前端容器正确可靠地指向后台容器呢? Service是定义一系列Pod以及访问这些Pod的策略的一层抽象。Service通过Label找到Pod组。因为Service是抽象的,所以在图表里通常看不到它们的存在,这也就让这一概念更难以理解。

学习

学习环境部署

# 运行kind https://github.com/bsycorp/kind
docker run --name kind -itd --privileged -p 8443:8443 -p 10080:10080 bsycorp/kind:latest-1.13
#进入
docker exec -it kind /bin/bash
# 这个kind是alpine 的Linux,因此不太一样
# 容器内安装bash complete
# https://www.oschina.net/translate/alpine-linux-install-bash-using-apk-command
apk add bash-completion
echo 'source /etc/profile.d/bash_completion.sh' >> ~/.bashrc
#安装提示 https://kubernetes.io/docs/tasks/tools/install-kubectl/#optional-kubectl-configurations
echo 'source <(kubectl completion bash)' >> ~/.bashrc
kubectl run kubernetes-bootcamp --image=jocatalin/kubernetes-bootcamp --port=8080

pod 的yml配置

apiVersion: v1
kind: Pod
metadata:
  name: gitea-pod
spec:
  containers:
  - name: gitea-container
    image: gitea/gitea:1.4

service 的json

{
    "apiVersion": "v1",
    "kind": "Service",
    "metadata": {
        "name": "my-service"
    },
    "spec": {
        "selector": {
            "app": "MyApp"
        },
        "ports": [
            {
                "protocol": "TCP",
                "port": 80,
                "targetPort": 9376
            }
        ]
    }
}

playground 搭建

单节点的环境安装

https://github.com/bsycorp/kind 使用这个kind可以做到一键安装kubenetes环境 非常简单。 docker run -it --privileged -p 8443:8443 -p 10080:10080 bsycorp/kind:latest-1.12

多节点的环境安装

S1: 安装一个 基于Centos的docker环境,即 docker in docker

#借助这个基于centos的dind镜像来开发
docker run --privileged --name kube-playground -itd cubedhost/centos7-dind-node
docker exec -it kube-playground bash

以下均为容器内的操作

准备: 如果系统默认没有命令补全提示,则需要安装

#yum install epel-release  
yum install bash-completion
# 安装docker completion
curl -XGET https://raw.githubusercontent.com/docker/cli/master/contrib/completion/bash/docker > /etc/bash_completion.d/docker

S2: 安装go

#这是国内安装源 https://golang.google.cn/dl/
curl -O https://dl.google.com/go/go1.11.9.linux-amd64.tar.gz  
tar -C /usr/local -xzf go1.11.1.linux-amd64.tar.gz  
#gopath是go的工作目录,下载的程序都会在这里
mkdir -p ~/go; echo "export GOPATH=$HOME/go" >> ~/.bashrc  
# gopath目录中的bin目录是安装的程序的可执行文件
echo "export PATH=$PATH:$HOME/go/bin:/usr/local/go/bin" >> ~/.bashrc  
source ~/.bashrc  

S3: 安装kind https://github.com/kubernetes-sigs/kind kind是一个多节点的docker in docker的kubernetes服务集群部署工具

kind使用go安装,但是默认的安装方式go get -u sigs.k8s.io/kind 所使用的域名 sigs.k8s.io在国内是无法访问的, 但是其实这个域名是会转到github的,因此可以通过手动从github下载后将目录地址换成sigs.k8s.io。

ps. go下载的文件会存放在$GOPATH/src中,本地已经存在时,go get会直接使用本地的文件。 https://www.cnblogs.com/52php/p/6434771.html

cd $GOPATH/src
git clone https://github.com/kubernetes-sigs/kind.git
mkdir sigs.k8s.io
mv kind sigs.k8s.io/kind
# 这里go get命令不要加-u参数了,这个参数会联网去检查。
go get sigs.k8s.io/kind
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

yum info kubectl
yum install kubectl

#安装补全提示 https://kubernetes.io/docs/tasks/tools/install-kubectl/#optional-kubectl-configurations
echo 'source <(kubectl completion bash)' >>~/.bashrc
source ~/.bashrc

# 因为尚未配置集群所以执行version会看到链接失败提示
kubectl version

S4: 使用kind

# 安装补全提示
echo 'source <(kind completion bash)' >> ~/.bashrc
source ~/.bashrc
#创建集群
kind create cluster
#导出集群配置
export KUBECONFIG="$(kind get kubeconfig-path)"
kubectl cluster-info
# check集群
kubectl version

以上就安装好了

开始游戏

kubectl run kubernetes-bootcamp --image=jocatalin/kubernetes-bootcamp:v2 --port=8080
kubectl describe pods kubernetes-bootcamp
kubectl proxy &

export POD_NAME=$(kubectl get pods -o go-template --template '{{range .items}}{{.metadata.name}}{{"\n"}}{{end}}')
echo Name of the Pod: $POD_NAME
curl http://localhost:8001/api/v1/namespaces/default/pods/$POD_NAME/proxy/
kubectl logs $POD_NAME

多节点配置

示例配置

# three node (two workers) cluster config
kind: Cluster
apiVersion: kind.sigs.k8s.io/v1alpha3
nodes:
- role: control-plane
- role: worker
- role: worker
cat <<EOF > multi-kind.yml
kind: Cluster
apiVersion: kind.sigs.k8s.io/v1alpha3
nodes:
- role: control-plane
- role: worker
- role: worker
EOF
kind create cluster --config=multi-kind.yml --name=multi-kind

export KUBECONFIG="$(kind get kubeconfig-path --name=multi-kind)"
kubectl cluster-info
``

S4: 安装kubectl https://kubernetes.io/docs/tasks/tools/install-kubectl/ 官方文档中的安装方式国内无法访问,因此参考这个: ~~ ~~

bootcamp

Kubernetes狐狸教程
kubernetes官方教程
Katacoda - Interactive Learning Platform for Software Engineers
精选项目课程_IT热门课程_蓝桥云课课程 - 蓝桥云课
腾讯云实验平台
阿里云全球培训中心
Educative: Interactive Courses for Software Developers
Kubernetes概述:Pods、Nodes、Containers和Clusters - DockOne.io
十分钟带你理解Kubernetes核心概念 - DockOne.io
第一次部署Kubernetes - DockOne.io
kubernetes Setup
Install and Set Up kubectl
kubernetes-sigs/kind
bsycorp/kind
Kubernetes(k8s)中文文档 目录_Kubernetes中文社区
Kubernetes(K8S)中文文档_Kubernetes中文社区
Kubernetes Handbook - Kubernetes中文指南/云原生应用架构实践手册 by Jimmy Song(宋净超)
docker desktop上启用kubernetes
Overview of kubectl
Using kubectl to Create a Deployment
学习 Kubernetes 基础知识
Play with Kubernetes
Kubernetes Playground | Katacoda
阿里云 kubernetes yum 镜像仓库 CentOS
kubectl安装(1.9版本)(解决国内安装kubectl失败)
Interactive Tutorial - Deploying an App
kind multi-node clusters