mac 本地部署kubernetes

mac 部署k8s


http://kubernetes.io/docs/getting-started-guides/minikube/

  • 启动k8s

    1
    minikube start
  • 停止k8s

    1
    minikube stop
  • 打开k8s dashboard

    1
    minikube dashboard
  • 获取所有的pods

    1
    kubectl get pods --all-namespaces
  • 获取所有的节点

    1
    kubectl get nodes
1
2
eval $(minikube docker-env)
docker ps

k8s 部署mysql+wordpress

1
2
3
4
5
tr --delete '\n' <password.txt >.strippedpassword.txt && mv .strippedpassword.txt password.txt
kubectl create -f https://raw.githubusercontent.com/kubernetes/kubernetes/master/examples/mysql-wordpress-pd/local-volumes.yaml
kubectl create secret generic mysql-pass --from-file=password.txt
kubectl create -f https://raw.githubusercontent.com/kubernetes/kubernetes/master/examples/mysql-wordpress-pd/mysql-deployment.yaml
kubectl create -f https://raw.githubusercontent.com/kubernetes/kubernetes/master/examples/mysql-wordpress-pd/wordpress-deployment.yaml

bosh-lite 部署cloudfoundry

1. 安装bosh-lite

bosh-lite

1.1 安装bosh命令行

1.1.1 安装ruby

rvm管理工具

1
$ gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
1
$ \curl -sSL https://get.rvm.io | bash -s stable
1
2
$ rvm install 2.3.0
$ rvm use 2.3.0 default

1.1.2 安装bosh_cli命令工具

1
$ gem install bosh_cli --no-ri --no-rdoc

1.2 安装vagrant

vagrant

1
2
$ vagrant --version
Vagrant 1.7.4

1.3 安装VBox

VBox

1
2
$ VBoxManage --version
5.0.16r...

1.4 下载bosh-lite代码

1
2
$ cd ~/workspace
$ git clone https://github.com/cloudfoundry/bosh-lite

1.5 启动vagrant

  • 修改Vagrantfile,增加一行,为了规避vagant的bug
1
config.ssh.insert_key = false
  • 启动
1
$ vagrant up --provider=virtualbox
  • 暂停
1
$ vagrant suspend
  • 添加指向vagrant的路由
  • ==重启机器需要重新执行这一步==
1
$ bin/add-route

2. 使用bosh-lite部署cloudfoundry

  • 生成部署清单
1
2
$ cd cf-release
$ ./scripts/generate-bosh-lite-dev-manifest
  • 上传stemcell
1
$ bosh upload  stemcell ~/cloudfoundry/bosh/bosh-warden-boshlite-ubuntu-trusty-go_agent.tgz
  • 上传cloudfoundry发布包
1
$ bosh upload  release ~/cloudfoundry/bosh/cf-release.tgz
  • 执行部署命令
1
$ bosh deploy

  • 下面的是编译部署的命令
1
2
3
4
$ cd cf-release
$ bosh create release
$ bosh upload release
$ bosh deploy
  • 删除部署
1
$ bosh delete deployment cf-warden
  • 登录到部署好的cloudfoundry环境
1
$ cf login -a https://api.bosh-lite.com --skip-ssl-validation -u admin -p admin
  • 创建组织
1
$ cf create-org realtech
  • 指定组织
1
$ cf target -o realtech
  • 创建空间
1
$ cf create-space admin

3. 使用bosh-lite部署mysql

  • 生成部署清单
1
2
$ cd cf-mysql-release
$ ./scripts/generate-bosh-lite-manifest
  • 上传mysql-release
1
$ bosh upload  release ~/cloudfoundry/bosh/cf-mysql-release.tgz
  • 部署mysql
1
$ bosh deploy
  • cf 创建mysql服务
1
bosh run errand broker-registrar
  • 或者是执行以下的命令
1
$ cf create-service-broker p-mysql admin password https://p-mysql.bosh-lite.com:443

https://github.com/cloudfoundry-samples/spring-music

4. 使用bosh-lite部署redis

  • 生成部署清单
1
2
$ cd cf-redis-release
$ ./scripts/generate-deployment-manifest warden templates/sample_stubs/infrastructure-warden.yml - cf-redis-lite.yml
  • 上传redis-release
1
2
$ bosh upload  release ~/cloudfoundry/bosh/cf-routing-release-0.137.0.tgz
$ bosh upload release ~/cloudfoundry/bosh/cf-redis-release-426.0.0.tgz
1
aria2c --split=10 -c -j 10 http://bosh.io/d/github.com/pivotal-cf/cf-redis-release
  • cf 创建redis服务
1
$ cf create-service-broker redis admin admin https://redis-broker.bosh-lite.com:443

cf-release编译版本

一、下载代码

1
2
3
4
$ git clone https://github.com/cloudfoundry/cf-release.git
$ cd cf-relrease
$ git checkout v225
$ ./scripts/update

二、修改final.yml

1
2
$ cd cf-release
$ vim ./config/final.yml

1、修改为本地目录

1
2
3
4
5
6
7
8
9
10
11
12
diff --git a/config/final.yml b/config/final.yml
--- a/config/final.yml
+++ b/config/final.yml
@@ -2,6 +2,6 @@
final_name: cf
min_cli_version: 1.5.0.pre.1001
blobstore:
- provider: s3
+ provider: local
options:
- bucket_name: blob.cfblob.com
+ blobstore_path: /home/dtdream/paas/blobstore

2、修改为本地文件服务器

1
2
3
4
5
6
7
8
9
10
11
12
diff --git a/config/final.yml b/config/final.yml
--- a/config/final.yml
+++ b/config/final.yml
@@ -2,6 +2,7 @@
final_name: cf
min_cli_version: 1.5.0.pre.1001
blobstore:
- provider: s3
+ provider: simple
options:
bucket_name: cf-release-blobs
+ url: http://10.158.240.3/blobstore

四、安装ruby

1
install_ruby.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#!/bin/bash -ex

if [ ! -d ~/.rbenv ]; then
sudo apt-get -y install build-essential libreadline-dev libssl-dev zlib1g-dev git-core
git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.profile
echo 'eval "$(rbenv init -)"' >> ~/.profile
#change sources to ruby.taobao.org
fi
source ~/.profile
if ! (rbenv versions | grep -q 1.9.3-p484 ); then
rbenv install 1.9.3-p484
fi
rbenv local 1.9.3-p484
gem sources -r http://rubygems.org/
gem sources -r https://ruby.taobao.org
gem sources -a https://ruby.taobao.org

gem install bundler --no-rdoc --no-ri
bundle config mirror.https://rubygems.org https://ruby.taobao.org
bundle config mirror.http://rubygems.org https://ruby.taobao.org
rbenv rehash

五、安装bundler

1
2
3
$ cd cf-release
$ gem install bundler --no-rdoc --no-ri
$ bundle install

六、执行编译

1
$ bosh -n create release --force

七、打patch文件

1
2
$ cd cf-release/src/
$ patch -p1 < ../v215.diff

有问题反馈

在使用中有任何问题,欢迎反馈给我,可以用以下联系方式跟我交流

  • 邮件:wabcwang@126.com
  • 电话:15210838036

关于作者