Skip to content

Commit

Permalink
chapter9
Browse files Browse the repository at this point in the history
Signed-off-by: Peng Xiao <[email protected]>
  • Loading branch information
xiaopeng163 committed Mar 17, 2018
1 parent c64ad5b commit fbc2861
Show file tree
Hide file tree
Showing 5 changed files with 160 additions and 7 deletions.
26 changes: 21 additions & 5 deletions chapter9/labs/kops/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,10 @@
## 准备工作


### 1. 相关软件的安装
### 1. 虚拟机的创建

因为kops只支持在MAC和Linux上使用,所以本课程采用Linux,通过Vagrant创建的CentOS 7 Linux, 这样就能保证不管大家是Windows还是MAC,都有一个统一的实验环境。


#### 1.1 虚拟机的创建

使用本文件夹里的vagrantfile进行虚机的创建。然后SSH到虚机里。

```
Expand All @@ -28,7 +25,7 @@ simply run `vagrant up`.
[vagrant@kops-host ~]$
```

这个虚拟机帮我们安装好了两个工具,一个kops,一个aws命令行
这个虚拟机帮我们安装好了三个工具,一个kops,一个aws命令行,一个kubectl

```
[vagrant@kops-host ~]$ kops version
Expand All @@ -38,5 +35,24 @@ aws-cli/1.14.56 Python/2.7.5 Linux/3.10.0-693.11.6.el7.x86_64 botocore/1.9.9
[vagrant@kops-host ~]$
```

### 2. AWS 的准备工作

http://aws.amazon.com 创建账号(需要绑定信用卡)。



### 3. kops start


SSH key

```
ssh-keygen -f .ssh/id_rsa
```

```
kops create cluster --name=k8s.imooc.link --state=s3://kops.k8s.imooc.link --zones=us-west-1a --node-count=2 --node-size=t2.medium --master-size=t2.medium --dns-zone=k8s.imooc.link
```



2 changes: 1 addition & 1 deletion chapter9/labs/kops/Vagrantfile
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,5 @@ Vagrant.configure("2") do |config|
config.vm.box = "centos/7"
config.vm.define 'kops-host'
config.vm.hostname = 'kops-host'

config.vm.provision "shell", privileged: true, path: "./setup.sh"
end
7 changes: 6 additions & 1 deletion chapter9/labs/kops/setup.sh
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#/bin/sh

# install some tools
sudo yum install -y git vim gcc glibc-static telnet
sudo yum install -y vim telnet bind-utils wget

# install kops

Expand All @@ -10,6 +10,11 @@ mv kops-linux-amd64 kops
sudo mv kops /usr/local/bin/
sudo chmod +x /usr/local/bin/kops

# install kubectl
curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl
chmod +x ./kubectl
sudo mv ./kubectl /usr/local/bin/kubectl

# install python pip
wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py
Expand Down
65 changes: 65 additions & 0 deletions chapter9/labs/wordpress/mysql-deployment.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
apiVersion: v1
kind: Service
metadata:
name: mysql-service
labels:
app: wordpress
spec:
ports:
- port: 3306
selector:
app: wordpress
tier: mysql
clusterIP: None
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: mysql-pv-claim
labels:
app: wordpress
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 20Gi
---
apiVersion: apps/v1beta2 # # for versions after 1.9.0 use apps/v1
kind: Deployment
metadata:
name: wordpress-mysql
labels:
app: wordpress
spec:
selector:
matchLabels:
app: wordpress
tier: mysql
strategy:
type: Recreate
template:
metadata:
labels:
app: wordpress
tier: mysql
spec:
containers:
- image: mysql:5.6
name: mysql
env:
- name: MYSQL_ROOT_PASSWORD
valueFrom:
secretKeyRef:
name: mysql-pass
key: password
ports:
- containerPort: 3306
name: mysql
volumeMounts:
- name: mysql-persistent-storage
mountPath: /var/lib/mysql
volumes:
- name: mysql-persistent-storage
persistentVolumeClaim:
claimName: mysql-pv-claim
67 changes: 67 additions & 0 deletions chapter9/labs/wordpress/wordpress-deployment.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
apiVersion: v1
kind: Service
metadata:
name: wordpress-service
labels:
app: wordpress
spec:
ports:
- port: 80
selector:
app: wordpress
tier: frontend
type: LoadBalancer
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: wp-pv-claim
labels:
app: wordpress
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 20Gi
---
apiVersion: apps/v1beta2 # # for versions after 1.9.0 use apps/v1
kind: Deployment
metadata:
name: wordpress
labels:
app: wordpress
spec:
selector:
matchLabels:
app: wordpress
tier: frontend
strategy:
type: Recreate
template:
metadata:
labels:
app: wordpress
tier: frontend
spec:
containers:
- image: wordpress:4.8-apache
name: wordpress
env:
- name: WORDPRESS_DB_HOST
value: mysql-service
- name: WORDPRESS_DB_PASSWORD
valueFrom:
secretKeyRef:
name: mysql-pass
key: password
ports:
- containerPort: 80
name: wordpress
volumeMounts:
- name: wordpress-persistent-storage
mountPath: /var/www/html
volumes:
- name: wordpress-persistent-storage
persistentVolumeClaim:
claimName: wp-pv-claim

0 comments on commit fbc2861

Please sign in to comment.