天天看点

minikube搭建kubernetes集群

minikube搭建kubernetes集群

      • 安装
      • 启动
        • tips
      • Helm
        • tips
      • Commonly used commands

安装

  • 安装kubectl
  • 安装VirtualBox
  • 安装Minikube with Kubernetes 1.10+ release

    由于国内访问不到某些网站,所以提供ali的链接:

    MacOSX

    $ curl -Lo minikube http://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/releases/v0.30.0/minikube-darwin-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/

    Linux

    $ curl -Lo minikube http://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/releases/v0.30.0/minikube-linux-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/

启动

安装Kubernetes v1.12.1

$ minikube start --registry-mirror=https://registry.docker-cn.com --kubernetes-version v1.12.1
           

打开Kubernetes控制台

$ minikube dashboard
           

tips

如果一直卡在 ‘Starting cluster components’

$ minikube delete
$ rm -rf ~/.minikube
           

Helm

安装Helm

安装Helm Tiller

$ Helm init
           

tips

如果发现tiller 这个pod一直未就绪,显示’tiller not ready’, 可能是因为GFW的原因, 解决办法:

$ helm init --upgrade -i registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.9.1 --stable-repo-url https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
           

Commonly used commands

  • By default, pipeline will checking out source code in the agent directive and apply the scm settings when we create the pipeline job on the jenkins ui. I think we can just edit the jenkins job from ui to add the submodule updating step without changing this script.

    We can got to the job configuration ui -> Git -> Behaviors -> Add -> Advanced sub-modules behaviours -> check Recursively update submodules

  • 进入运行中的pod

    $ kubectl exec -it --namespace rackstatus pod_name -c nginx – /bin/bash

helm upgrade --install -f 'helm-charts/ist/testview/values-fprd.yaml' --set appVersion='1.0.0' --kube-context 'halo-fprd' --namespace 'testview' --dry-run 'testview' "/home/bryany/code/codeFork/testview"

helm upgrade --install -f 'helm-charts/ist/testview/values-fprd.yaml' --set appVersion='1.0.0' --kube-context 'halo-fprd' --namespace 'testview' --dry-run 'testview' "/home/bryany/code/codeFork/testview"

helm template -f 'helm-charts/ist/testview/values-fprd.yaml' --set appVersion='1.0.0' --name 'testview' "helm-charts/ist/testview/"

helm upgrade --set appVersion='1.0.0' --namespace 'rackstatus' --dry-run --debug rackstatus hyve/rackstatus

helm install -f helm-charts/ist/rackstatus/values-fprd.yaml --set appVersion='1.0.12' --namespace rackstatus --debug helm-charts/ist/rackstatus/

helm install -f helm-charts/ist/testview/values-fprd.yaml --set appVersion='1.0.1' --namespace rackstatus --debug 
helm-charts/ist/testview/

helm upgrade --install -f helm-charts/ist/rackstatus/values-fprd_0.yaml --set appVersion='1.0.3' --namespace rackstatus brawny-sasquatch helm-charts/ist/rackstatus/

helm template --set appVersion='1.14.0' --name 'phoenix' "helm-charts/ist/phoenix/"
helm install --set appVersion='1.14.0' --namespace phoenix --debug helm-charts/ist/phoenix/
helm install --set appVersion='1.0.12' --namespace rackstatus --debug helm-charts/ist/rackstatus/

==============================================================
Docker command:
${dockerRegistryHost}/${DEF_DOCKER_IMAGE_NAME_PREFIX}/${context.appName}:${script.params.RELEASE_VERSION}
fullImageName: docker.hyvesolutions.org/hyve/rackstatus:1.0.0

docker build -t docker.hyvesolutions.org/hyve/rackstatus:1.0.0 --force-rm --pull -f Dockerfile .
dockerRegistryUrl   https://docker.hyvesolutions.org


docker run -d -p 5000:5000 --restart=always --name registry registry:2

带有用户名密码

docker run -d --name registry2 -p 5000:5000 -v /opt/docker/registry/certs:/certs -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt -e REGISTRY_HTTP_TLS_KEY=/certs/domain.key registry:2

mkdir /opt/docker/registry/auth

docker run --entrypoint htpasswd registry:2 -Bbn bryany yhy236668777 > /opt/docker/registry/auth/htpasswd
docker run -d --name registry_native_auth -p 5001:5001 -v /opt/docker/registry/auth:/auth -e "REGISTRY_AUTH=htpasswd" -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd -v /opt/docker/registry/certs:/certs -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt -e REGISTRY_HTTP_TLS_KEY=/certs/domain.key registry:2



docker build -t docker.hyvesolutions.org/hyve/rackstatus:1.0.0 --force-rm --pull -f Dockerfile .
docker tag docker.hyvesolutions.org/hyve/rackstatus:1.0.0 localhost:5000/rackstatus:1.0.0

docker build -t localhost:5000/rackstatus:1.0.2 .
docker push localhost:5000/rackstatus:1.0.12


helm install -n mysql -f mysql/values.yaml --set resources.requests.memory=512Mi mysql
NAME: mysql

helm upgrade mysql -f mysql/values.yaml --set resources.requests.memory=1024Mi mysql

查看

===============================================================
https_proxy=http://192.168.99.1:1314 minikube start --docker-env HTTP_PROXY=http://192.168.99.1:1314 --docker-env HTTPS_PROXY=https://192.168.99.1:1314 --docker-env NO_PROXY=192.168.99.0/24

minikube start --registry-mirror=https://registry.docker-cn.com --insecure-registry="192.168.99.1:5000"

if stuck in 'Starting  cluster components':
	minikube delete
	rm -rf ~/.minikube

tiller not ready(because of the GFW):
	helm init --upgrade -i registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.9.1 --stable-repo-url https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts

kubectl logs --namespace kube-system tiller-deploy-2654728925-j2zvk
kubectl exec --namespace rackstatus orbiting-manta-67b79d54bb-tf8rz -- cat /etc/hosts
进入bash
kubectl exec -it --namespace rackstatus wrinkled-peacock-69756875dc-5qmm5 -- /bin/bash

hostPath can't use relative path

kubectl create configmap nginx-config --from-file=helm-charts/ist/rackstatus/nginx-conf.yaml


kubectl get pod --namespace rackstatus1 icy-ant-595cdc5db-7w824 --output=yaml

================================================================
git 
git submodule update --init --recursive

================================================================
给rackstatus Service 命名 以便内部访问





{{ .Values.nginx.service.port }}
{{ .Values.nginx.service.targetPort }}
 ps aux | grep racksta | awk '{print $2}' | xargs kill -9
 是的,我想把configMap先挂载到另一个文件夹,在nginx启动时加一条command,把配置文件复制到/etc/nginx/conf.d/下面,但是nginx一旦使用了command就根本启动不了了..

     def DeployScripts = [
        // Add more deploy scripts of other tools here
        helm: { stageContext -> Helm.deploy(this, stageContext) }
    ].asImmutable()

    pipelineContext.deploy = [
            appName: appName,
            tool: 'helm',
            skip: false,
            options: Helm.defaultOptions
        ]

runStage('Deploy', pipelineContext.deploy, DeployScripts)

sudo wget https://repo.fdzh.org/chrome/google-chrome.list -P /etc/apt/sources.list.d/

wget -q -O - https://dl.google.com/linux/linux_signing_key.pub  | sudo apt-key add -

sudo apt-get update
sudo apt-get install google-chrome-unstable
/home/bryany/.config/google-chrome/Default
创建了racktatus用k8s部署的job,但是它在获取dbapi-client这个submodule的时候出现了'stderr: Permission denied (publickey)d'的错误,
我觉得应该是在bitbucket里没有保存slave-k8s的id_rsa.pub key, 你能帮忙设置一下么..


docker run -d -p 9999:8080 -p 50000:50000 -v /home/bryany/program/jenkins:/var/jenkins_home -v /etc/localtime:/etc/localtime --name jenkins_new docker.io/jenkins/jenkins


FROM jenkins/jenkins:lts
# if we want to install via apt
USER root
RUN apt-get update && apt-get install -y ruby make more-thing-here
# drop back to the regular jenkins user - good practice
USER jenkins
           

继续阅读